/*!*
 *
 *  Copyright (c) Highsoft AS. All rights reserved.
 *
 *!*/
import * as globals from "./globals.src";
/**
 * Formatter callback for the accessibility announcement.
 *
 * @param updatedSeries
 *        Array of all series that received updates. If an announcement is
 *        already queued, the series that received updates for that announcement
 *        are also included in this array.
 *
 * @param addedSeries
 *        This is provided if Highcharts.Chart#addSeries was called, and there
 *        is a new series. In that case, this argument is a reference to the new
 *        series.
 *
 * @param addedPoint
 *        This is provided if Highcharts.Series#addPoint was called, and there
 *        is a new point. In that case, this argument is a reference to the new
 *        point.
 *
 * @return The function should return a string with the text to announce to the
 *         user. Return empty string to not announce anything. Return `false` to
 *         use the default announcement format.
 */
export type AccessibilityAnnouncementFormatter = (updatedSeries: Array<Series>, addedSeries?: Series, addedPoint?: Point) => (false|string);
/**
 * The horizontal alignment of an element.
 */
export type AlignValue = ("center"|"left"|"right");
/**
 * Creates a frame for the animated SVG element.
 *
 * @param this
 *        The SVG element to animate.
 */
export type AnimationStepCallbackFunction = (this: SVGElement) => void;
/**
 * Callback to modify annotation's possitioner controls.
 */
export type AnnotationControlPointPositionerFunction = (this: AnnotationControlPoint, target: AnnotationControllable) => PositionObject;
/**
 * Possible directions for draggable annotations. An empty string (`''`) makes
 * the annotation undraggable.
 */
export type AnnotationDraggableValue = (''|'x'|'xy'|'y');
export type AxisEventCallbackFunction = (this: Axis) => void;
export type AxisExtremesTriggerValue = ("navigator"|"pan"|"scrollbar"|"zoom"|"rangeSelectorButton"|"rangeSelectorInput"|"traverseUpButton");
export type AxisLabelsFormatterCallbackFunction = (this: AxisLabelsFormatterContextObject<number>, that: AxisLabelsFormatterContextObject<string>) => string;
/**
 * Options for axes.
 */
export type AxisOptions = (XAxisOptions|YAxisOptions|ZAxisOptions);
/**
 * Options for plot band labels on axes.
 */
export type AxisPlotBandsLabelOptions = (XAxisPlotBandsLabelOptions|YAxisPlotBandsLabelOptions|ZAxisPlotBandsLabelOptions);
/**
 * Options for plot bands on axes.
 */
export type AxisPlotBandsOptions = (XAxisPlotBandsOptions|YAxisPlotBandsOptions|ZAxisPlotBandsOptions);
/**
 * Options for plot line labels on axes.
 */
export type AxisPlotLinesLabelOptions = (XAxisPlotLinesLabelOptions|YAxisPlotLinesLabelOptions|ZAxisPlotLinesLabelOptions);
/**
 * Options for plot lines on axes.
 */
export type AxisPlotLinesOptions = (XAxisPlotLinesOptions|YAxisPlotLinesOptions|ZAxisPlotLinesOptions);
export type AxisPointBreakEventCallbackFunction = (this: Axis, evt: AxisPointBreakEventObject) => void;
export type AxisSetExtremesEventCallbackFunction = (this: Axis, evt: AxisSetExtremesEventObject) => void;
export type AxisTickPositionerCallbackFunction = (this: Axis) => AxisTickPositionsArray;
export type AxisTitleAlignValue = ("high"|"low"|"middle");
export type AxisTitleOptions = (XAxisTitleOptions|YAxisTitleOptions|ZAxisTitleOptions);
export type AxisTypeValue = ("category"|"datetime"|"linear"|"logarithmic"|"treegrid");
export type BubbleSizeByValue = ("area"|"width");
export type ButtonRelativeToValue = ("plotBox"|"spacingBox");
/**
 * Gets fired when a series is added to the chart after load time, using the
 * `addSeries` method. Returning `false` prevents the series from being added.
 *
 * @param this
 *        The chart on which the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type ChartAddSeriesCallbackFunction = (this: Chart, event: ChartAddSeriesEventObject) => void;
/**
 * Callback for chart constructors.
 *
 * @param chart
 *        Created chart.
 */
export type ChartCallbackFunction = (chart: Chart) => void;
/**
 * Gets fired when clicking on the plot background.
 *
 * @param this
 *        The chart on which the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type ChartClickCallbackFunction = (this: Chart, event: PointerEventObject) => void;
/**
 * Gets fired when the chart is finished loading.
 *
 * @param this
 *        The chart on which the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type ChartLoadCallbackFunction = (this: Chart, event: Event) => void;
/**
 * Fires when the chart is redrawn, either after a call to `chart.redraw()` or
 * after an axis, series or point is modified with the `redraw` option set to
 * `true`.
 *
 * @param this
 *        The chart on which the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type ChartRedrawCallbackFunction = (this: Chart, event: Event) => void;
/**
 * Gets fired after initial load of the chart (directly after the `load` event),
 * and after each redraw (directly after the `redraw` event).
 *
 * @param this
 *        The chart on which the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type ChartRenderCallbackFunction = (this: Chart, event: Event) => void;
/**
 * Gets fired when an area of the chart has been selected. The default action
 * for the selection event is to zoom the chart to the selected area. It can be
 * prevented by calling `event.preventDefault()` or return false.
 *
 * @param this
 *        The chart on which the event occured.
 *
 * @param event
 *        Event informations
 *
 * @return Return false to prevent the default action, usually zoom.
 */
export type ChartSelectionCallbackFunction = (this: Chart, event: ChartSelectionContextObject) => (boolean|undefined);
/**
 * A clipping rectangle that can be applied to one or more SVGElement instances.
 * It is instanciated with the SVGRenderer#clipRect function and applied with
 * the SVGElement#clip function.
 */
export type ClipRectElement = SVGElement;
/**
 * Color axis types
 */
export type ColorAxisTypeValue = ("linear"|"logarithmic");
/**
 * A valid color to be parsed and handled by Highcharts. Highcharts internally
 * supports hex colors like `#ffffff`, rgb colors like `rgb(255,255,255)` and
 * rgba colors like `rgba(255,255,255,1)`. Other colors may be supported by the
 * browsers and displayed correctly, but Highcharts is not able to process them
 * and apply concepts like opacity and brightening.
 */
export type ColorString = string;
/**
 * A valid color type than can be parsed and handled by Highcharts. It can be a
 * color string, a gradient object, or a pattern object.
 */
export type ColorType = (ColorString|GradientColorObject|PatternObject);
/**
 * All possible cursor styles.
 */
export type CursorValue = ('alias'|'all-scroll'|'auto'|'cell'|'col-resize'|'context-menu'|'copy'|'crosshair'|'default'|'e-resize'|'ew-resize'|'grab'|'grabbing'|'help'|'move'|'n-resize'|'ne-resize'|
'nesw-resize'|'no-drop'|'none'|'not-allowed'|'ns-resize'|'nw-resize'|'nwse-resize'|'pointer'|'progress'|'row-resize'|'s-resize'|'se-resize'|'sw-resize'|'text'|'vertical-text'|'w-resize'|'wait'|
'zoom-in'|'zoom-out');
/**
 * All possible dash styles.
 */
export type DashStyleValue = ('Dash'|'DashDot'|'Dot'|'LongDash'|'LongDashDot'|'LongDashDotDot'|'ShortDash'|'ShortDashDot'|'ShortDashDotDot'|'ShortDot'|'Solid');
/**
 * Callback function to modify the CSV before parsing it by the data module.
 *
 * @param csv
 *        The CSV to modify.
 *
 * @return The CSV to parse.
 */
export type DataBeforeParseCallbackFunction = (csv: string) => string;
/**
 * Callback function that gets called after parsing data.
 *
 * @param chartOptions
 *        The chart options that were used.
 */
export type DataCompleteCallbackFunction = (chartOptions: Options) => void;
export type DataGroupingApproximationValue = ("average"|"averages"|"close"|"high"|"low"|"open"|"sum");
/**
 * Callback JavaScript function to format the data label as a string. Note that
 * if a `format` is defined, the format takes precedence and the formatter is
 * ignored.
 *
 * @param this
 *        Data label context to format
 *
 * @param options
 *        API options of the data label
 *
 * @return Formatted data label text
 */
export type DataLabelsFormatterCallbackFunction = (this: PointLabelObject, options: DataLabelsOptions) => (number|string|null|undefined);
/**
 * Values for handling data labels that flow outside the plot area.
 */
export type DataLabelsOverflowValue = ("allow"|"justify");
/**
 * Callback function to parse string representations of dates into JavaScript
 * timestamps (milliseconds since 1.1.1970).
 *
 * @return Timestamp (milliseconds since 1.1.1970) as integer for Date class.
 */
export type DataParseDateCallbackFunction = (dateValue: string) => number;
/**
 * Callback function to access the parsed columns, the two-dimentional input
 * data array directly, before they are interpreted into series data and
 * categories.
 *
 * @param columns
 *        The parsed columns by the data module.
 *
 * @return Return `false` to stop completion, or call `this.complete()` to
 *         continue async.
 */
export type DataParsedCallbackFunction = (columns: Array<Array<any>>) => (boolean|undefined);
/**
 * Possible types for a data item in a column or row.
 */
export type DataValueType = (number|string|null);
/**
 * Gets fired when a drilldown point is clicked, before the new series is added.
 * Note that when clicking a category label to trigger multiple series
 * drilldown, one `drilldown` event is triggered per point in the category.
 *
 * @param this
 *        The chart where the event occurs.
 *
 * @param e
 *        The drilldown event.
 */
export type DrilldownCallbackFunction = (this: Chart, e: DrilldownEventObject) => void;
/**
 * This gets fired after all the series have been drilled up. This is especially
 * usefull in a chart with multiple drilldown series.
 *
 * @param this
 *        The chart where the event occurs.
 *
 * @param e
 *        The final drillup event.
 */
export type DrillupAllCallbackFunction = (this: Chart, e: DrillupAllEventObject) => void;
/**
 * Gets fired when drilling up from a drilldown series.
 *
 * @param this
 *        The chart where the event occurs.
 *
 * @param e
 *        The drillup event.
 */
export type DrillupCallbackFunction = (this: Chart, e: DrillupEventObject) => void;
/**
 * The function callback to execute when the event is fired. The `this` context
 * contains the instance, that fired the event.
 *
 * @param eventArguments
 *        Event arguments.
 */
export type EventCallbackFunction<T> = (this: T, eventArguments?: (Event|Dictionary<any>)) => (boolean|void);
/**
 * Function callback to execute while data rows are processed for exporting.
 * This allows the modification of data rows before processed into the final
 * format.
 *
 * @param this
 *        Chart context where the event occured.
 *
 * @param event
 *        Event object with data rows that can be modified.
 */
export type ExportDataCallbackFunction = (this: Chart, event: ExportDataEventObject) => void;
/**
 * Gets fired after a chart is printed through the context menu item or the
 * Chart.print method.
 *
 * @param chart
 *        The chart on which the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type ExportingAfterPrintCallbackFunction = (chart: Chart, event: Event) => void;
/**
 * Gets fired before a chart is printed through the context menu item or the
 * Chart.print method.
 *
 * @param chart
 *        The chart on which the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type ExportingBeforePrintCallbackFunction = (chart: Chart, event: Event) => void;
/**
 * Function to call if the offline-exporting module fails to export a chart on
 * the client side.
 *
 * @param options
 *        The exporting options.
 *
 * @param err
 *        The error from the module.
 */
export type ExportingErrorCallbackFunction = (options: ExportingOptions, err: Error) => void;
/**
 * Possible MIME types for exporting.
 */
export type ExportingMimeTypeValue = ("application/pdf"|"image/jpeg"|"image/png"|"image/svg+xml");
export type FlagsShapeValue = ("circlepin"|"flag"|"squarepin");
/**
 * Formats data as a string. Usually the data is accessible throught the `this`
 * keyword.
 *
 * @param this
 *        Context to format
 *
 * @return Formatted text
 */
export type FormatterCallbackFunction<T> = (this: T) => string;
/**
 * An object of key-value pairs for HTML attributes.
 */
export type HTMLAttributes = Dictionary<(boolean|number|string|Function)>;
/**
 * An HTML DOM element. The type is a reference to the regular HTMLElement in
 * the global scope.
 */
export type HTMLDOMElement = HTMLElement;
/**
 * Function callback when a cluster is clicked.
 *
 * @param this
 *        The point where the event occured.
 *
 * @param event
 *        Event arguments.
 */
export type MarkerClusterDrillCallbackFunction = (this: Point, event: PointClickEventObject) => void;
/**
 * Format a number and return a string based on input settings.
 *
 * @param number
 *        The input number to format.
 *
 * @param decimals
 *        The amount of decimals. A value of -1 preserves the amount in the
 *        input number.
 *
 * @param decimalPoint
 *        The decimal point, defaults to the one given in the lang options, or a
 *        dot.
 *
 * @param thousandsSep
 *        The thousands separator, defaults to the one given in the lang
 *        options, or a space character.
 *
 * @return The formatted number.
 */
export type NumberFormatterCallbackFunction = (number: number, decimals: number, decimalPoint?: string, thousandsSep?: string) => string;
/**
 * The iterator callback.
 *
 * @param this
 *        The context.
 *
 * @param value
 *        The property value.
 *
 * @param key
 *        The property key.
 *
 * @param obj
 *        The object that objectEach is being applied to.
 */
export type ObjectEachCallbackFunction<T> = (this: T, value: any, key: string, obj: any) => void;
export type OptionsApproximationValue = ("barnes-hut"|"none");
export type OptionsBoostBlendingValue = ("add"|"darken"|"multiply");
export type OptionsDataClassColorValue = ("category"|"tween");
export type OptionsDateFormatValue = ("dd/mm/YY"|"dd/mm/YYYY"|"mm/dd/YY"|"mm/dd/YYYY"|"YYYY/mm/dd");
export type OptionsFindNearestPointByValue = ("x"|"xy");
export type OptionsGapUnitValue = ("relative"|"value");
export type OptionsGridLineInterpolationValue = ("circle"|"polygon");
export type OptionsHeaderShapeValue = ("callout"|"square");
export type OptionsIntegrationValue = ("euler"|"verlet");
export type OptionsLandmarkVerbosityValue = ("all"|"disabled"|"one");
export type OptionsLayoutAlgorithmValue = ("squarified"|"strip"|"stripes"|"sliceAndDice");
export type OptionsLayoutStartingDirectionValue = ("horizontal"|"vertical");
export type OptionsLayoutValue = ("horizontal"|"proximate"|"vertical");
export type OptionsLinecapValue = ("round"|"square");
export type OptionsMarkerEndValue = ("arrow"|"none");
export type OptionsMinorTickPositionValue = ("inside"|"outside");
export type OptionsModeValue = ("normal"|"serialize");
export type OptionsOnKeyValue = ("close"|"high"|"low"|"open"|"y");
export type OptionsOperatorValue = ("=="|"==="|">"|">="|"<"|"<=");
export type OptionsOverflowValue = ("allow"|"justify");
export type OptionsPanKeyValue = ("alt"|"ctrl"|"meta"|"shift");
export type OptionsPinchTypeValue = ("x"|"xy"|"y");
export type OptionsPointIntervalUnitValue = ("day"|"month"|"year");
export type OptionsPointValKeyValue = ("close"|"high"|"low"|"open");
export type OptionsPosition3dValue = ("chart"|"flap"|"offset"|"ortho");
export type OptionsRotationModeValue = ("auto"|"circular"|"parallel"|"perpendicular");
export type OptionsRotationOriginValue = ("center"|"end"|"start");
export type OptionsStackingValue = ("normal"|"overlap"|"percent"|"stream");
export type OptionsStepValue = ("center"|"left"|"right");
export type OptionsTextAlignValue = ("center"|"left"|"right");
export type OptionsTickmarkPlacementValue = ("between"|"on");
export type OptionsTickPositionValue = ("inside"|"outside");
export type OptionsTypeValue = ("x"|"xy"|"y");
export type OptionsUnitValue = ("percentage"|"pixels"|"weight");
export type OptionsZoomKeyValue = ("alt"|"ctrl"|"meta"|"shift");
export type OptionsZoomTypeValue = ("x"|"xy"|"y");
export type PaneBackgroundShapeValue = ("arc"|"circle"|"solid");
/**
 * The default pathfinder algorithm to use for a chart. It is possible to define
 * your own algorithms by adding them to the
 * `Highcharts.Pathfinder.prototype.algorithms` object before the chart has been
 * created.
 *
 * The default algorithms are as follows:
 *
 * `straight`: Draws a straight line between the connecting points. Does not
 * avoid other points when drawing.
 *
 * `simpleConnect`: Finds a path between the points using right angles only.
 * Takes only starting/ending points into account, and will not avoid other
 * points.
 *
 * `fastAvoid`: Finds a path between the points using right angles only. Will
 * attempt to avoid other points, but its focus is performance over accuracy.
 * Works well with less dense datasets.
 */
export type PathfinderTypeValue = ("straight"|"fastAvoid"|"simpleConnect"|string);
/**
 * Function callback when a series point is clicked. Return false to cancel the
 * action.
 *
 * @param this
 *        The point where the event occured.
 *
 * @param event
 *        Event arguments.
 */
export type PointClickCallbackFunction = (this: Point, event: PointClickEventObject) => void;
/**
 * Function callback to execute while series points are dragged. Return false to
 * stop the default drag action.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event arguments.
 */
export type PointDragCallbackFunction = (this: Point, event: PointDragEventObject) => void;
/**
 * Function callback to execute when a series point is dragged.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event arguments.
 */
export type PointDragStartCallbackFunction = (this: Point, event: PointDragStartEventObject) => void;
/**
 * Function callback to execute when series points are dropped.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event arguments.
 */
export type PointDropCallbackFunction = (this: Point, event: PointDropEventObject) => void;
/**
 * Gets fired when the legend item belonging to a point is clicked. The default
 * action is to toggle the visibility of the point. This can be prevented by
 * returning `false` or calling `event.preventDefault()`.
 *
 * @param this
 *        The point on which the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type PointLegendItemClickCallbackFunction = (this: Point, event: PointLegendItemClickEventObject) => void;
/**
 * Gets fired when the mouse leaves the area close to the point.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type PointMouseOutCallbackFunction = (this: Point, event: PointerEvent) => void;
/**
 * Gets fired when the mouse enters the area close to the point.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type PointMouseOverCallbackFunction = (this: Point, event: Event) => void;
/**
 * Possible option types for a data point. Use `null` to indicate a gap.
 */
export type PointOptionsType = (number|string|PointOptionsObject|Array<(number|string|null)>|null);
/**
 * Gets fired when the point is removed using the `.remove()` method.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type PointRemoveCallbackFunction = (this: Point, event: Event) => void;
/**
 * Gets fired when the point is selected either programmatically or following a
 * click on the point.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type PointSelectCallbackFunction = (this: Point, event: PointInteractionEventObject) => void;
/**
 * Possible key values for the point state options.
 */
export type PointStateValue = ("hover"|"inactive"|"normal"|"select");
/**
 * Fires when the point is unselected either programmatically or following a
 * click on the point.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type PointUnselectCallbackFunction = (this: Point, event: PointInteractionEventObject) => void;
/**
 * Gets fired when the point is updated programmatically through the `.update()`
 * method.
 *
 * @param this
 *        Point where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type PointUpdateCallbackFunction = (this: Point, event: PointUpdateEventObject) => void;
/**
 * Define the time span for the button
 */
export type RangeSelectorButtonTypeValue = ("all"|"day"|"hour"|"millisecond"|"minute"|"month"|"second"|"week"|"year"|"ytd");
/**
 * Callback function to react on button clicks.
 *
 * @param e
 *        Event arguments.
 *
 * @param Return
 *        false to cancel the default button event.
 */
export type RangeSelectorClickCallbackFunction = (e: Event, Return: (boolean|undefined)) => void;
/**
 * Callback function to parse values entered in the input boxes and return a
 * valid JavaScript time as milliseconds since 1970.
 *
 * @param value
 *        Input value to parse.
 *
 * @return Parsed JavaScript time value.
 */
export type RangeSelectorParseCallbackFunction = (value: string) => number;
/**
 * If a number is given, it defines the pixel length. If a percentage string is
 * given, like for example `'50%'`, the setting defines a length relative to a
 * base size, for example the size of a container.
 */
export type RelativeSize = (number|string);
/**
 * A callback function to gain complete control on when the responsive rule
 * applies.
 *
 * @param this
 *        Chart context.
 *
 * @return Return `true` if it applies.
 */
export type ResponsiveCallbackFunction = (this: Chart) => boolean;
/**
 * @param evt
 *        Mouse click event
 */
export type ScreenReaderClickCallbackFunction = (evt: MouseEvent) => void;
/**
 * Creates a formatted string for the screen reader module.
 *
 * @param context
 *        Context to format
 *
 * @return Formatted string for the screen reader module.
 */
export type ScreenReaderFormatterCallbackFunction<T> = (context: T) => string;
/**
 * Function callback when a series has been animated.
 *
 * @param this
 *        The series where the event occured.
 *
 * @param event
 *        Event arguments.
 */
export type SeriesAfterAnimateCallbackFunction = (this: Series, event: SeriesAfterAnimateEventObject) => void;
/**
 * Function callback when the checkbox next to the series' name in the legend is
 * clicked.
 *
 * @param this
 *        The series where the event occured.
 *
 * @param event
 *        Event arguments.
 */
export type SeriesCheckboxClickCallbackFunction = (this: Series, event: SeriesCheckboxClickEventObject) => void;
/**
 * Function callback when a series is clicked. Return false to cancel toogle
 * actions.
 *
 * @param this
 *        The series where the event occured.
 *
 * @param event
 *        Event arguments.
 */
export type SeriesClickCallbackFunction = (this: Series, event: SeriesClickEventObject) => void;
/**
 * Gets fired when the series is hidden after chart generation time, either by
 * clicking the legend item or by calling `.hide()`.
 *
 * @param this
 *        The series where the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type SeriesHideCallbackFunction = (this: Series, event: Event) => void;
/**
 * Gets fired when the legend item belonging to a series is clicked. The default
 * action is to toggle the visibility of the series. This can be prevented by
 * returning `false` or calling `event.preventDefault()`.
 *
 * @param this
 *        The series where the event occured.
 *
 * @param event
 *        The event that occured.
 */
export type SeriesLegendItemClickCallbackFunction = (this: Series, event: SeriesLegendItemClickEventObject) => void;
/**
 * The SVG value used for the `stroke-linecap` and `stroke-linejoin` of a line
 * graph.
 */
export type SeriesLinecapValue = ("butt"|"round"|"square"|string);
/**
 * Gets fired when the mouse leaves the graph.
 *
 * @param this
 *        Series where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type SeriesMouseOutCallbackFunction = (this: Series, event: PointerEvent) => void;
/**
 * Gets fired when the mouse enters the graph.
 *
 * @param this
 *        Series where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type SeriesMouseOverCallbackFunction = (this: Series, event: PointerEvent) => void;
/**
 * Formatter callback function.
 *
 * @param this
 *        Data label context to format
 *
 * @return Formatted data label text
 */
export type SeriesNetworkgraphDataLabelsFormatterCallbackFunction = (this: (PointLabelObject|SeriesNetworkgraphDataLabelsFormatterContextObject)) => string;
/**
 * The possible types of series options.
 */
export type SeriesOptionsType = SeriesOptionsRegistry[keyof SeriesOptionsRegistry];
/**
 * Layout value for the child nodes in an organization chart. If `hanging`, this
 * node's children will hang below their parent, allowing a tighter packing of
 * nodes in the diagram.
 */
export type SeriesOrganizationNodesLayoutValue = ("hanging"|"normal");
/**
 * Formatter callback function.
 *
 * @param this
 *        Data label context to format
 *
 * @return Formatted data label text
 */
export type SeriesPackedBubbleDataLabelsFormatterCallbackFunction = (this: SeriesPackedBubbleDataLabelsFormatterContextObject) => string;
/**
 * Formatter callback function.
 *
 * @param this
 *        Data label context to format
 *
 * @return Formatted data label text
 */
export type SeriesSankeyDataLabelsFormatterCallbackFunction = (this: (PointLabelObject|SeriesSankeyDataLabelsFormatterContextObject)) => (string|undefined);
/**
 * Gets fired when the series is shown after chart generation time, either by
 * clicking the legend item or by calling `.show()`.
 *
 * @param this
 *        Series where the event occured.
 *
 * @param event
 *        Event that occured.
 */
export type SeriesShowCallbackFunction = (this: Series, event: Event) => void;
/**
 * Possible key values for the series state options.
 */
export type SeriesStateValue = ("hover"|"inactive"|"normal"|"select");
/**
 * An SVG DOM element. The type is a reference to the regular SVGElement in the
 * global scope.
 */
export type SVGDOMElement = globals.GlobalSVGElement;
/**
 * Array of path commands, that will go into the `d` attribute of an SVG
 * element.
 */
export type SVGPathArray = Array<(Array<SVGPathCommand>|[SVGPathCommand, number]|[SVGPathCommand, number, number]|[SVGPathCommand, number, number, number, number]|[SVGPathCommand, number, number,
number, number, number, number]|[SVGPathCommand, number, number, number, number, number, number, number])>;
/**
 * Possible path commands in an SVG path array. Valid values are `A`, `C`, `H`,
 * `L`, `M`, `Q`, `S`, `T`, `V`, `Z`.
 */
export type SVGPathCommand = ("a"|"c"|"h"|"l"|"m"|"q"|"s"|"t"|"v"|"z"|"A"|"C"|"H"|"L"|"M"|"Q"|"S"|"T"|"V"|"Z");
/**
 * Can be one of `arc`, `callout`, `circle`, `diamond`, `square`, `triangle`,
 * and `triangle-down`. Symbols are used internally for point markers, button
 * and label borders and backgrounds, or custom shapes. Extendable by adding to
 * SVGRenderer#symbols.
 */
export type SymbolKeyValue = ("arc"|"callout"|"circle"|"diamond"|"square"|"triangle"|"triangle-down");
export type TilemapShapeValue = ("circle"|"diamond"|"hexagon"|"square");
/**
 * Function of an additional date format specifier.
 *
 * @param timestamp
 *        The time to format.
 *
 * @return The formatted portion of the date.
 */
export type TimeFormatCallbackFunction = (timestamp: number) => string;
/**
 * Callback JavaScript function to format the data label as a string. Note that
 * if a `format` is defined, the format takes precedence and the formatter is
 * ignored.
 *
 * @param this
 *        Data label context to format
 *
 * @return Formatted data label text
 */
export type TimelineDataLabelsFormatterCallbackFunction = (this: (PointLabelObject|TimelineDataLabelsFormatterContextObject)) => (number|string|null|undefined);
/**
 * Time units used in `Time.get` and `Time.set`
 */
export type TimeUnitValue = ("Date"|"Day"|"FullYear"|"Hours"|"Milliseconds"|"Minutes"|"Month"|"Seconds");
/**
 * A callback to return the time zone offset for a given datetime. It takes the
 * timestamp in terms of milliseconds since January 1 1970, and returns the
 * timezone offset in minutes. This provides a hook for drawing time based
 * charts in specific time zones using their local DST crossover dates, with the
 * help of external libraries.
 *
 * @param timestamp
 *        Timestamp in terms of milliseconds since January 1 1970.
 *
 * @return Timezone offset in minutes.
 */
export type TimezoneOffsetCallbackFunction = (timestamp: number) => number;
/**
 * Callback function to format the text of the tooltip from scratch.
 *
 * In case of single or shared tooltips, a string should be be returned. In case
 * of splitted tooltips, it should return an array where the first item is the
 * header, and subsequent items are mapped to the points. Return `false` to
 * disable tooltip for a specific point on series.
 *
 * @param this
 *        Context to format
 *
 * @param tooltip
 *        The tooltip instance
 *
 * @return Formatted text or false
 */
export type TooltipFormatterCallbackFunction = (this: TooltipFormatterContextObject, tooltip: Tooltip) => (false|string|Array<(string|null|undefined)>|null|undefined);
/**
 * A callback function to place the tooltip in a specific position.
 *
 * @param this
 *        Tooltip context of the callback.
 *
 * @param labelWidth
 *        Width of the tooltip.
 *
 * @param labelHeight
 *        Height of the tooltip.
 *
 * @param point
 *        Point information for positioning a tooltip.
 *
 * @return New position for the tooltip.
 */
export type TooltipPositionerCallbackFunction = (this: Tooltip, labelWidth: number, labelHeight: number, point: TooltipPositionerPointObject) => PositionObject;
export type TooltipShapeValue = ("callout"|"circle"|"square");
export type VariablePieSizeByValue = ("area"|"radius");
/**
 * The vertical alignment of an element.
 */
export type VerticalAlignValue = ("bottom"|"middle"|"top");
/**
 * Proceed function to call original (wrapped) function.
 *
 * @param arg1
 *        Optional argument. Without any arguments defaults to first argument of
 *        the wrapping function.
 *
 * @param arg2
 *        Optional argument. Without any arguments defaults to second argument
 *        of the wrapping function.
 *
 * @param arg3
 *        Optional argument. Without any arguments defaults to third argument of
 *        the wrapping function.
 *
 * @return Return value of the original function.
 */
export type WrapProceedFunction = (arg1?: any, arg2?: any, arg3?: any) => any;
/**
 * Formatter function for the text of a crosshair label.
 *
 * @param this
 *        Axis context
 *
 * @param value
 *        Y value of the data point
 */
export type XAxisCrosshairLabelFormatterCallbackFunction = (this: Axis, value: number) => string;
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for announcing new data to
 * screen reader users. Useful for dynamic data applications and drilldown.
 *
 * Keep in mind that frequent announcements will not be useful to users, as they
 * won't have time to explore the new data. For these applications, consider
 * making snapshots of the data accessible, and do the announcements in batches.
 */
export interface AccessibilityAnnounceNewDataOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Optional formatter callback for
     * the announcement. Receives up to three arguments. The first argument is
     * always an array of all series that received updates. If an announcement
     * is already queued, the series that received updates for that announcement
     * are also included in this array. The second argument is provided if
     * `chart.addSeries` was called, and there is a new series. In that case,
     * this argument is a reference to the new series. The third argument,
     * similarly, is provided if `series.addPoint` was called, and there is a
     * new point. In that case, this argument is a reference to the new point.
     *
     * The function should return a string with the text to announce to the
     * user. Return empty string to not announce anything. Return `false` to use
     * the default announcement format.
     */
    announcementFormatter?: AccessibilityAnnouncementFormatter;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable announcing new data to
     * screen reader users
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Choose whether or not the
     * announcements should interrupt the screen reader. If not enabled, the
     * user will be notified once idle. It is recommended not to enable this
     * setting unless there is a specific reason to do so.
     */
    interruptUser?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Minimum interval between
     * announcements in milliseconds. If new data arrives before this amount of
     * time has passed, it is queued for announcement. If another new data event
     * happens while an announcement is queued, the queued announcement is
     * dropped, and the latest announcement is queued instead. Set to 0 to allow
     * all announcements, but be warned that frequent announcements are
     * disturbing to users.
     */
    minAnnounceInterval?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for configuring
 * accessibility for the chart. Requires the accessibility module to be loaded.
 * For a description of the module and information on its features, see
 * Highcharts Accessibility.
 */
export interface AccessibilityOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for announcing new data
     * to screen reader users. Useful for dynamic data applications and
     * drilldown.
     *
     * Keep in mind that frequent announcements will not be useful to users, as
     * they won't have time to explore the new data. For these applications,
     * consider making snapshots of the data accessible, and do the
     * announcements in batches.
     */
    announceNewData?: AccessibilityAnnounceNewDataOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A hook for adding custom
     * components to the accessibility module. Should be an object mapping
     * component names to instances of classes inheriting from the
     * Highcharts.AccessibilityComponent base class. Remember to add the
     * component to the keyboardNavigation.order for the keyboard navigation to
     * be usable.
     */
    customComponents?: any;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A text description of the chart.
     *
     * **Note: Prefer using linkedDescription or caption instead.**
     *
     * If the Accessibility module is loaded, this option is included by default
     * as a long description of the chart in the hidden screen reader
     * information region.
     *
     * Note: Since Highcharts now supports captions and linked descriptions, it
     * is preferred to define the description using those methods, as a visible
     * caption/description benefits all users. If the
     * `accessibility.description` option is defined, the linked description is
     * ignored, and the caption is hidden from screen reader users.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable accessibility
     * functionality for the chart.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Theme to apply to the chart when
     * Windows High Contrast Mode is detected. By default, a high contrast theme
     * matching the high contrast system system colors is used.
     */
    highContrastTheme?: any;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for keyboard navigation.
     */
    keyboardNavigation?: KeyboardNavigationOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Amount of landmarks/regions to
     * create for screen reader users. More landmarks can make navigation with
     * screen readers easier, but can be distracting if there are lots of charts
     * on the page. Three modes are available:
     *
     * - `all`: Adds regions for all series, legend, menu, information region.
     *
     * - `one`: Adds a single landmark per chart.
     *
     * - `disabled`: No landmarks are added.
     */
    landmarkVerbosity?: OptionsLandmarkVerbosityValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Link the chart to an HTML
     * element describing the contents of the chart.
     *
     * It is always recommended to describe charts using visible text, to
     * improve SEO as well as accessibility for users with disabilities. This
     * option lets an HTML element with a description be linked to the chart, so
     * that screen reader users can connect the two.
     *
     * By setting this option to a string, Highcharts runs the string as an HTML
     * selector query on the entire document. If there is only a single match,
     * this element is linked to the chart. The content of the linked element
     * will be included in the chart description for screen reader users.
     *
     * By default, the chart looks for an adjacent sibling element with the
     * `highcharts-description` class.
     *
     * The feature can be disabled by setting the option to an empty string, or
     * overridden by providing the accessibility.description option.
     * Alternatively, the HTML element to link can be passed in directly as an
     * HTML node.
     *
     * If you need the description to be part of the exported image, consider
     * using the caption feature.
     *
     * If you need the description to be hidden visually, use the
     * accessibility.description option.
     */
    linkedDescription?: (string|HTMLDOMElement);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for descriptions of
     * individual data points.
     */
    point?: AccessibilityPointOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for the
     * screen reader information sections added before and after the chart.
     */
    screenReaderSection?: AccessibilityScreenReaderSectionOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options global to
     * all data series. Individual series can also have specific accessibility
     * options set.
     */
    series?: AccessibilitySeriesOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A text description of the chart
     * type.
     *
     * If the Accessibility module is loaded, this will be included in the
     * description of the chart in the screen reader information region.
     *
     * Highcharts will by default attempt to guess the chart type, but for more
     * complex charts it is recommended to specify this property for clarity.
     */
    typeDescription?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for descriptions of
 * individual data points.
 */
export interface AccessibilityPointOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Date format to use for points on
     * datetime axes when describing them to screen reader users.
     *
     * Defaults to the same format as in tooltip.
     *
     * For an overview of the replacement codes, see dateFormat.
     */
    dateFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Formatter function to determine
     * the date/time format used with points on datetime axes when describing
     * them to screen reader users. Receives one argument, `point`, referring to
     * the point to describe. Should return a date format string compatible with
     * dateFormat.
     */
    dateFormatter?: ScreenReaderFormatterCallbackFunction<Point>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Formatter function to use
     * instead of the default for point descriptions.
     *
     * Receives one argument, `point`, referring to the point to describe.
     * Should return a string with the description of the point for a screen
     * reader user. If `false` is returned, the default formatter will be used
     * for that point.
     *
     * Note: Prefer using accessibility.point.valueDescriptionFormat instead if
     * possible, as default functionality such as describing annotations will be
     * preserved.
     */
    descriptionFormatter?: ScreenReaderFormatterCallbackFunction<Point>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Decimals to use for the values
     * in the point descriptions. Uses tooltip.valueDecimals if not defined.
     */
    valueDecimals?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format to use for describing the
     * values of data points to assistive technology - including screen readers.
     * The point context is available as `{point}`.
     *
     * Additionally, the series name, annotation info, and description added in
     * `point.accessibility.description` is added by default if relevant. To
     * override this, use the accessibility.point.descriptionFormatter option.
     */
    valueDescriptionFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Prefix to add to the values in
     * the point descriptions. Uses tooltip.valuePrefix if not defined.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Suffix to add to the values in
     * the point descriptions. Uses tooltip.valueSuffix if not defined.
     */
    valueSuffix?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for the screen
 * reader information sections added before and after the chart.
 */
export interface AccessibilityScreenReaderSectionOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for the screen reader
     * information region after the chart. Analogous to beforeChartFormat.
     */
    afterChartFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A formatter function to create
     * the HTML contents of the hidden screen reader information region after
     * the chart. Analogous to beforeChartFormatter.
     */
    afterChartFormatter?: ScreenReaderFormatterCallbackFunction<Chart>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Date format to use to describe
     * range of datetime axes.
     *
     * For an overview of the replacement codes, see dateFormat.
     */
    axisRangeDateFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for the screen reader
     * information region before the chart. Supported HTML tags are `<h1-7>`,
     * `<p>`, `<div>`, `<a>`, `<ul>`, `<ol>`, `<li>`, and `<button>`. Attributes
     * are not supported, except for id on `<div>`, `<a>`, and `<button>`. Id is
     * required on `<a>` and `<button>` in the format `<tag id="abcd">`.
     * Numbers, lower- and uppercase letters, "-" and "#" are valid characters
     * in IDs.
     */
    beforeChartFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A formatter function to create
     * the HTML contents of the hidden screen reader information region before
     * the chart. Receives one argument, `chart`, referring to the chart object.
     * Should return a string with the HTML content of the region. By default
     * this returns an automatic description of the chart based on
     * beforeChartFormat.
     */
    beforeChartFormatter?: ScreenReaderFormatterCallbackFunction<Chart>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Function to run upon clicking
     * the "Play as sound" button in the screen reader region.
     *
     * By default Highcharts will call the `chart.sonify` function.
     */
    onPlayAsSoundClick?: ScreenReaderClickCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Function to run upon clicking
     * the "View as Data Table" link in the screen reader region.
     *
     * By default Highcharts will insert and set focus to a data table
     * representation of the chart.
     */
    onViewDataTableClick?: ScreenReaderClickCallbackFunction;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options global to all
 * data series. Individual series can also have specific accessibility options
 * set.
 */
export interface AccessibilitySeriesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether or not to add series
     * descriptions to charts with a single series.
     */
    describeSingleSeries?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Formatter function to use
     * instead of the default for series descriptions. Receives one argument,
     * `series`, referring to the series to describe. Should return a string
     * with the description of the series for a screen reader user. If `false`
     * is returned, the default formatter will be used for that series.
     */
    descriptionFormatter?: ScreenReaderFormatterCallbackFunction<Series>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When a series contains more
     * points than this, we no longer expose information about individual points
     * to screen readers.
     *
     * Set to `false` to disable.
     */
    pointDescriptionEnabledThreshold?: (boolean|number);
}
/**
 * Options to align the element relative to the chart or another box.
 */
export interface AlignObject {
    /**
     * Horizontal alignment. Can be one of `left`, `center` and `right`.
     */
    align?: AlignValue;
    /**
     * Use the `transform` attribute with translateX and translateY custom
     * attributes to align this elements rather than `x` and `y` attributes.
     */
    alignByTranslate?: boolean;
    /**
     * Vertical alignment. Can be one of `top`, `middle` and `bottom`.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * Horizontal pixel offset from alignment.
     */
    x?: number;
    /**
     * Vertical pixel offset from alignment.
     */
    y?: number;
}
/**
 * An animation configuration. Animation configurations can also be defined as
 * booleans, where `false` turns off animation and `true` defaults to a duration
 * of 500ms and defer of 0ms.
 */
export interface AnimationOptionsObject {
    /**
     * A callback function to exectute when the animation finishes.
     */
    complete?: Function;
    /**
     * The animation defer in milliseconds.
     */
    defer?: number;
    /**
     * The animation duration in milliseconds.
     */
    duration?: number;
    /**
     * The name of an easing function as defined on the `Math` object.
     */
    easing?: (string|Function);
    /**
     * A callback function to execute on each step of each attribute or CSS
     * property that's being animated. The first argument contains information
     * about the animation and progress.
     */
    step?: Function;
}
export interface AnnotationControllable {
    annotation: Annotation;
    chart: Chart;
    collection: string;
    points: Array<Point>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's control
 * points. Each control point inherits options from controlPointOptions object.
 * Options from the controlPointOptions can be overwritten by options in a
 * specific control point.
 */
export interface AnnotationControlPointOptionsObject {
    positioner?: AnnotationControlPointPositionerFunction;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for an
 * annotation label.
 */
export interface AnnotationLabelAccessibilityOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Description of an annotation
     * label for screen readers and other assistive technology.
     */
    description?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) An array of points for the shape.
 * This option is available for shapes which can use multiple points such as
 * path. A point can be either a point object or a point's id.
 */
export interface AnnotationMockPointOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position of the point.
     * Units can be either in axis or chart pixel coordinates.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This number defines which xAxis
     * the point is connected to. It refers to either the axis id or the index
     * of the axis in the xAxis array. If the option is not configured or the
     * axis is not found the point's x coordinate refers to the chart pixels.
     */
    xAxis?: (number|string|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position of the point.
     * Units can be either in axis or chart pixel coordinates.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This number defines which yAxis
     * the point is connected to. It refers to either the axis id or the index
     * of the axis in the yAxis array. If the option is not configured or the
     * axis is not found the point's y coordinate refers to the chart pixels.
     */
    yAxis?: (number|string|null);
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `annotation`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface AnnotationsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders annotation immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
export interface AnnotationsCrookedLineControlPointOptions {
    events?: any;
}
/**
 * (Highstock) Options for annotation's labels. Each label inherits options from
 * the labelOptions object. An option from the labelOptions can be overwritten
 * by config for a specific label.
 */
export interface AnnotationsCrookedLineLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: AlignValue;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) A crooked line annotation.
 */
export interface AnnotationsCrookedLineOptions {
    controlPointOptions?: AnnotationsCrookedLineControlPointOptions;
    /**
     * (Highstock) Options for annotation's labels. Each label inherits options
     * from the labelOptions object. An option from the labelOptions can be
     * overwritten by config for a specific label.
     */
    labelOptions?: AnnotationsCrookedLineLabelOptions;
    /**
     * (Highstock) Options for annotation's shapes. Each shape inherits options
     * from the shapeOptions object. An option from the shapeOptions can be
     * overwritten by config for a specific shape.
     */
    shapeOptions?: AnnotationsCrookedLineShapeOptions;
    /**
     * (Highstock) Additional options for an annotation with the type.
     */
    typeOptions?: AnnotationsCrookedLineTypeOptions;
}
/**
 * (Highstock) Options for annotation's shapes. Each shape inherits options from
 * the shapeOptions object. An option from the shapeOptions can be overwritten
 * by config for a specific shape.
 */
export interface AnnotationsCrookedLineShapeOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The height of the shape.
     */
    height?: number;
    /**
     * (Highstock) The radius of the shape.
     */
    r?: number;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
    /**
     * (Highstock) The type of the shape, e.g. circle or rectangle.
     */
    type?: string;
    /**
     * (Highstock) The width of the shape.
     */
    width?: number;
}
/**
 * (Highstock) Line options.
 */
export interface AnnotationsCrookedLineTypeLineOptions {
    fill?: string;
}
/**
 * (Highstock) Additional options for an annotation with the type.
 */
export interface AnnotationsCrookedLineTypeOptions {
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsCrookedLineTypeLineOptions;
    points?: Array<AnnotationsCrookedLineTypePointsOptions>;
    /**
     * (Highstock) This number defines which xAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    xAxis?: number;
    /**
     * (Highstock) This number defines which yAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    yAxis?: number;
}
export interface AnnotationsCrookedLineTypePointsOptions {
    controlPoint?: number;
    /**
     * (Highstock) The x position of the point.
     */
    x?: number;
    /**
     * (Highstock) The y position of the point.
     */
    y?: number;
}
export interface AnnotationsElliottWaveControlPointOptions {
    events?: any;
}
/**
 * (Highstock) Options for annotation's labels. Each label inherits options from
 * the labelOptions object. An option from the labelOptions can be overwritten
 * by config for a specific label.
 */
export interface AnnotationsElliottWaveLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: string;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: string;
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    type?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) An elliott wave annotation.
 */
export interface AnnotationsElliottWaveOptions {
    controlPointOptions?: AnnotationsElliottWaveControlPointOptions;
    /**
     * (Highstock) Options for annotation's labels. Each label inherits options
     * from the labelOptions object. An option from the labelOptions can be
     * overwritten by config for a specific label.
     */
    labelOptions?: AnnotationsElliottWaveLabelOptions;
    /**
     * (Highstock) Options for annotation's shapes. Each shape inherits options
     * from the shapeOptions object. An option from the shapeOptions can be
     * overwritten by config for a specific shape.
     */
    shapeOptions?: AnnotationsElliottWaveShapeOptions;
    /**
     * (Highstock) Additional options for an annotation with the type.
     */
    typeOptions?: AnnotationsElliottWaveTypeOptions;
}
/**
 * (Highstock) Options for annotation's shapes. Each shape inherits options from
 * the shapeOptions object. An option from the shapeOptions can be overwritten
 * by config for a specific shape.
 */
export interface AnnotationsElliottWaveShapeOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The height of the shape.
     */
    height?: number;
    /**
     * (Highstock) The radius of the shape.
     */
    r?: number;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
    /**
     * (Highstock) The type of the shape, e.g. circle or rectangle.
     */
    type?: string;
    /**
     * (Highstock) The width of the shape.
     */
    width?: number;
}
/**
 * (Highstock) Line options.
 */
export interface AnnotationsElliottWaveTypeLineOptions {
    fill?: string;
    strokeWidth?: number;
}
/**
 * (Highstock) Additional options for an annotation with the type.
 */
export interface AnnotationsElliottWaveTypeOptions {
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsElliottWaveTypeLineOptions;
    points?: Array<AnnotationsElliottWaveTypePointsOptions>;
    /**
     * (Highstock) This number defines which xAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    xAxis?: number;
    /**
     * (Highstock) This number defines which yAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    yAxis?: number;
}
/**
 * (Highstock) Options for annotation's labels. Each label inherits options from
 * the labelOptions object. An option from the labelOptions can be overwritten
 * by config for a specific label.
 */
export interface AnnotationsElliottWaveTypePointsLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: AlignValue;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
export interface AnnotationsElliottWaveTypePointsOptions {
    controlPoint?: number;
    /**
     * (Highstock) Options for annotation's labels. Each label inherits options
     * from the labelOptions object. An option from the labelOptions can be
     * overwritten by config for a specific label.
     */
    label?: AnnotationsElliottWaveTypePointsLabelOptions;
    /**
     * (Highstock) The x position of the point.
     */
    x?: number;
    /**
     * (Highstock) The y position of the point.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Events available in annotations.
 */
export interface AnnotationsEventsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event callback when annotation
     * is added to the chart.
     */
    add?: EventCallbackFunction<Annotation>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event callback when annotation
     * is updated (e.g. drag and droppped or resized by control points).
     */
    afterUpdate?: EventCallbackFunction<Annotation>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event callback when annotation
     * is removed from the chart.
     */
    remove?: EventCallbackFunction<Annotation>;
}
export interface AnnotationsFibonacciControlPointOptions {
    events?: any;
}
/**
 * (Highstock) Options for annotation's labels. Each label inherits options from
 * the labelOptions object. An option from the labelOptions can be overwritten
 * by config for a specific label.
 */
export interface AnnotationsFibonacciLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: string;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: string;
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: (AnnotationsFibonacciLabelStyleOptions|CSSObject);
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: string;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) Styles for the annotation's label.
 */
export interface AnnotationsFibonacciLabelStyleOptions {
    color?: string;
}
/**
 * (Highstock) A fibonacci annotation.
 */
export interface AnnotationsFibonacciOptions {
    controlPointOptions?: AnnotationsFibonacciControlPointOptions;
    /**
     * (Highstock) Options for annotation's labels. Each label inherits options
     * from the labelOptions object. An option from the labelOptions can be
     * overwritten by config for a specific label.
     */
    labelOptions?: AnnotationsFibonacciLabelOptions;
    /**
     * (Highstock) Options for annotation's shapes. Each shape inherits options
     * from the shapeOptions object. An option from the shapeOptions can be
     * overwritten by config for a specific shape.
     */
    shapeOptions?: AnnotationsFibonacciShapeOptions;
    /**
     * (Highstock) Additional options for an annotation with the type.
     */
    typeOptions?: AnnotationsFibonacciTypeOptions;
}
/**
 * (Highstock) Options for annotation's shapes. Each shape inherits options from
 * the shapeOptions object. An option from the shapeOptions can be overwritten
 * by config for a specific shape.
 */
export interface AnnotationsFibonacciShapeOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The height of the shape.
     */
    height?: number;
    /**
     * (Highstock) The radius of the shape.
     */
    r?: number;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
    /**
     * (Highstock) The type of the shape, e.g. circle or rectangle.
     */
    type?: string;
    /**
     * (Highstock) The width of the shape.
     */
    width?: number;
}
/**
 * (Highstock) An array with options for the labels.
 */
export interface AnnotationsFibonacciTypeLabelsOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: AlignValue;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) Line options.
 */
export interface AnnotationsFibonacciTypeLineOptions {
    fill?: string;
}
/**
 * (Highstock) Additional options for an annotation with the type.
 */
export interface AnnotationsFibonacciTypeOptions {
    /**
     * (Highstock) An array of background colors: Default to: (see online
     * documentation for example)
     */
    backgroundColors?: object;
    /**
     * (Highstock) The height of the fibonacci in terms of yAxis.
     */
    height?: number;
    /**
     * (Highstock) An array with options for the labels.
     */
    labels?: Array<AnnotationsFibonacciTypeLabelsOptions>;
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsFibonacciTypeLineOptions;
    /**
     * (Highstock) The color of line.
     */
    lineColor?: string;
    /**
     * (Highstock) An array of colors for the lines.
     */
    lineColors?: object;
    points?: Array<AnnotationsFibonacciTypePointsOptions>;
    /**
     * (Highstock) This number defines which xAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    xAxis?: number;
    /**
     * (Highstock) This number defines which yAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    yAxis?: number;
}
export interface AnnotationsFibonacciTypePointsOptions {
    controlPoint?: number;
    /**
     * (Highstock) The x position of the point.
     */
    x?: number;
    /**
     * (Highstock) The y position of the point.
     */
    y?: number;
}
export interface AnnotationsInfinityLineControlPointOptions {
    events?: any;
}
/**
 * (Highstock) Options for annotation's labels. Each label inherits options from
 * the labelOptions object. An option from the labelOptions can be overwritten
 * by config for a specific label.
 */
export interface AnnotationsInfinityLineLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: AlignValue;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) An infinity line annotation.
 */
export interface AnnotationsInfinityLineOptions {
    controlPointOptions?: AnnotationsInfinityLineControlPointOptions;
    /**
     * (Highstock) Options for annotation's labels. Each label inherits options
     * from the labelOptions object. An option from the labelOptions can be
     * overwritten by config for a specific label.
     */
    labelOptions?: AnnotationsInfinityLineLabelOptions;
    /**
     * (Highstock) Options for annotation's shapes. Each shape inherits options
     * from the shapeOptions object. An option from the shapeOptions can be
     * overwritten by config for a specific shape.
     */
    shapeOptions?: AnnotationsInfinityLineShapeOptions;
    /**
     * (Highstock) Additional options for an annotation with the type.
     */
    typeOptions?: AnnotationsInfinityLineTypeOptions;
}
/**
 * (Highstock) Options for annotation's shapes. Each shape inherits options from
 * the shapeOptions object. An option from the shapeOptions can be overwritten
 * by config for a specific shape.
 */
export interface AnnotationsInfinityLineShapeOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The height of the shape.
     */
    height?: number;
    /**
     * (Highstock) The radius of the shape.
     */
    r?: number;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
    /**
     * (Highstock) The type of the shape, e.g. circle or rectangle.
     */
    type?: string;
    /**
     * (Highstock) The width of the shape.
     */
    width?: number;
}
/**
 * (Highstock) Line options.
 */
export interface AnnotationsInfinityLineTypeLineOptions {
    fill?: string;
}
/**
 * (Highstock) Additional options for an annotation with the type.
 */
export interface AnnotationsInfinityLineTypeOptions {
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsInfinityLineTypeLineOptions;
    points?: Array<AnnotationsInfinityLineTypePointsOptions>;
    /**
     * (Highstock) This number defines which xAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    xAxis?: number;
    /**
     * (Highstock) This number defines which yAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    yAxis?: number;
}
export interface AnnotationsInfinityLineTypePointsOptions {
    controlPoint?: number;
    /**
     * (Highstock) The x position of the point.
     */
    x?: number;
    /**
     * (Highstock) The y position of the point.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's labels.
 * Each label inherits options from the labelOptions object. An option from the
 * labelOptions can be overwritten by config for a specific label.
 */
export interface AnnotationsLabelOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for an
     * annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the
     * annotation's label. If right, the right side of the label should be
     * touching the point.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow the
     * annotation's labels to overlap. To make the labels less sensitive for
     * overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the
     * annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide the annotation's
     * label that is outside the plot area.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The label's pixel distance from
     * the point.
     */
    distance?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the annotation's label. Note that if a `format` or `text` are
     * defined, the format or text take precedence and the formatter is ignored.
     * `This` refers to a point object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the annotation is
     * visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle the annotation's
     * label that flow outside the plot area. The justify option aligns the
     * label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the borderWidth or
     * the backgroundColor is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. The
     * shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the annotation's
     * label.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alias for the format option.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point. Note that if a `distance` is defined, the
     * distance takes precedence over `x` and `y` options.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point. Note that if a `distance` is defined, the
     * distance takes precedence over `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) An array of labels for the
 * annotation. For options that apply to multiple labels, they can be added to
 * the labelOptions.
 */
export interface AnnotationsLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for an
     * annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the
     * annotation's label. If right, the right side of the label should be
     * touching the point.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow the
     * annotation's labels to overlap. To make the labels less sensitive for
     * overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the
     * annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide the annotation's
     * label that is outside the plot area.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The label's pixel distance from
     * the point.
     */
    distance?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the annotation's label. Note that if a `format` or `text` are
     * defined, the format or text take precedence and the formatter is ignored.
     * `This` refers to a point object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the annotation is
     * visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle the annotation's
     * label that flow outside the plot area. The justify option aligns the
     * label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the borderWidth or
     * the backgroundColor is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This option defines the point to
     * which the label will be connected. It can be either the point which
     * exists in the series - it is referenced by the point's id - or a new
     * point with defined x, y properties and optionally axes.
     */
    point?: (string|AnnotationMockPointOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. The
     * shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the annotation's
     * label.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alias for the format option.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point. Note that if a `distance` is defined, the
     * distance takes precedence over `x` and `y` options.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point. Note that if a `distance` is defined, the
     * distance takes precedence over `x` and `y` options.
     */
    y?: number;
}
export interface AnnotationsMeasureControlPointOptions {
    events?: any;
}
/**
 * (Highstock) A measure annotation.
 */
export interface AnnotationsMeasureOptions {
    controlPointOptions?: AnnotationsMeasureControlPointOptions;
    /**
     * (Highstock) Additional options for an annotation with the type.
     */
    typeOptions?: AnnotationsMeasureTypeOptions;
}
export interface AnnotationsMeasureTypeBackgroundOptions {
    /**
     * (Highstock) The color of the rectangle.
     */
    fill?: string;
    /**
     * (Highstock) The color of border.
     */
    stroke?: string;
    /**
     * (Highstock) The width of border.
     */
    strokeWidth?: number;
}
/**
 * (Highstock) Configure a crosshair that is horizontally placed in middle of
 * rectangle.
 */
export interface AnnotationsMeasureTypeCrosshairXOptions {
    /**
     * (Highstock) The dash or dot style of the crosshair's line. For possible
     * values, see this demonstration.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Enable or disable the horizontal crosshair.
     */
    enabled?: boolean;
    /**
     * (Highstock) The marker-end defines the arrowhead that will be drawn at
     * the final vertex of the given crosshair's path.
     */
    markerEnd?: string;
    /**
     * (Highstock) The Z index of the crosshair in annotation.
     */
    zIndex?: number;
}
/**
 * (Highstock) Configure a crosshair that is vertically placed in middle of
 * rectangle.
 */
export interface AnnotationsMeasureTypeCrosshairYOptions {
    /**
     * (Highstock) The dash or dot style of the crosshair's line. For possible
     * values, see this demonstration.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Enable or disable the vertical crosshair.
     */
    enabled?: boolean;
    /**
     * (Highstock) The marker-end defines the arrowhead that will be drawn at
     * the final vertex of the given crosshair's path.
     */
    markerEnd?: OptionsMarkerEndValue;
    /**
     * (Highstock) The Z index of the crosshair in annotation.
     */
    zIndex?: number;
}
export interface AnnotationsMeasureTypeLabelOptions {
    /**
     * (Highstock) Enable or disable the label text (min, max, average, bins
     * values).
     *
     * Defaults to true.
     */
    enabled?: boolean;
    /**
     * (Highstock) Formatter function for the label text.
     *
     * Available data are:
     *
     *  (see online documentation for example)
     */
    formatter?: Function;
    /**
     * (Highstock) CSS styles for the measure label.
     */
    style?: (AnnotationsMeasureTypeLabelStyleOptions|CSSObject);
}
/**
 * (Highstock) CSS styles for the measure label.
 */
export interface AnnotationsMeasureTypeLabelStyleOptions {
    color?: string;
    fontSize?: string;
}
/**
 * (Highstock) Line options.
 */
export interface AnnotationsMeasureTypeLineOptions {
    fill?: string;
}
/**
 * (Highstock) Additional options for an annotation with the type.
 */
export interface AnnotationsMeasureTypeOptions {
    background?: AnnotationsMeasureTypeBackgroundOptions;
    /**
     * (Highstock) Configure a crosshair that is horizontally placed in middle
     * of rectangle.
     */
    crosshairX?: AnnotationsMeasureTypeCrosshairXOptions;
    /**
     * (Highstock) Configure a crosshair that is vertically placed in middle of
     * rectangle.
     */
    crosshairY?: AnnotationsMeasureTypeCrosshairYOptions;
    label?: AnnotationsMeasureTypeLabelOptions;
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsMeasureTypeLineOptions;
    points?: Array<AnnotationsMeasureTypePointsOptions>;
    /**
     * (Highstock) Decides in what dimensions the user can resize by dragging
     * the mouse. Can be one of x, y or xy.
     */
    selectType?: string;
    /**
     * (Highstock) This number defines which xAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    xAxis?: number;
    /**
     * (Highstock) This number defines which yAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the yAxis array.
     */
    yAxis?: number;
}
export interface AnnotationsMeasureTypePointsOptions {
    controlPoint?: number;
    /**
     * (Highstock) The x position of the point.
     */
    x?: number;
    /**
     * (Highstock) The y position of the point.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) A basic type of an annotation. It
 * allows to add custom labels or shapes. The items can be tied to points, axis
 * coordinates or chart pixel coordinates.
 */
export interface AnnotationsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `annotation`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|AnnotationsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's control
     * points. Each control point inherits options from controlPointOptions
     * object. Options from the controlPointOptions can be overwritten by
     * options in a specific control point.
     */
    controlPointOptions?: AnnotationControlPointOptionsObject;
    /**
     * (Highstock) A crooked line annotation.
     */
    crookedLine?: AnnotationsCrookedLineOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Allow an annotation to be
     * draggable by a user. Possible values are `'x'`, `'xy'`, `'y'` and `''`
     * (disabled).
     */
    draggable?: AnnotationDraggableValue;
    /**
     * (Highstock) An elliott wave annotation.
     */
    elliottWave?: AnnotationsElliottWaveOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Events available in annotations.
     */
    events?: AnnotationsEventsOptions;
    /**
     * (Highstock) A fibonacci annotation.
     */
    fibonacci?: AnnotationsFibonacciOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Sets an ID for an annotation.
     * Can be user later when removing an annotation in
     * Chart.removeAnnotation(id) method.
     */
    id?: (number|string);
    /**
     * (Highstock) An infinity line annotation.
     */
    infinityLine?: AnnotationsInfinityLineOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's labels.
     * Each label inherits options from the labelOptions object. An option from
     * the labelOptions can be overwritten by config for a specific label.
     */
    labelOptions?: AnnotationsLabelOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array of labels for the
     * annotation. For options that apply to multiple labels, they can be added
     * to the labelOptions.
     */
    labels?: Array<AnnotationsLabelsOptions>;
    /**
     * (Highstock) A measure annotation.
     */
    measure?: AnnotationsMeasureOptions;
    /**
     * (Highstock) A pitchfork annotation.
     */
    pitchfork?: AnnotationsPitchforkOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's shapes.
     * Each shape inherits options from the shapeOptions object. An option from
     * the shapeOptions can be overwritten by config for a specific shape.
     */
    shapeOptions?: AnnotationsShapeOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array of shapes for the
     * annotation. For options that apply to multiple shapes, then can be added
     * to the shapeOptions.
     */
    shapes?: Array<AnnotationsShapesOptions>;
    /**
     * (Highstock) A tunnel annotation.
     */
    tunnel?: AnnotationsTunnelOptions;
    /**
     * (Highstock) A vertical line annotation.
     */
    verticalLine?: AnnotationsVerticalLineOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the annotation is
     * visible.
     */
    visible?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the annotation.
     */
    zIndex?: number;
}
export interface AnnotationsPitchforkControlPointOptions {
    events?: any;
}
/**
 * (Highstock) Options for annotation's labels. Each label inherits options from
 * the labelOptions object. An option from the labelOptions can be overwritten
 * by config for a specific label.
 */
export interface AnnotationsPitchforkLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: AlignValue;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) A pitchfork annotation.
 */
export interface AnnotationsPitchforkOptions {
    controlPointOptions?: AnnotationsPitchforkControlPointOptions;
    /**
     * (Highstock) Options for annotation's labels. Each label inherits options
     * from the labelOptions object. An option from the labelOptions can be
     * overwritten by config for a specific label.
     */
    labelOptions?: AnnotationsPitchforkLabelOptions;
    /**
     * (Highstock) Options for annotation's shapes. Each shape inherits options
     * from the shapeOptions object. An option from the shapeOptions can be
     * overwritten by config for a specific shape.
     */
    shapeOptions?: AnnotationsPitchforkShapeOptions;
    /**
     * (Highstock) Additional options for an annotation with the type.
     */
    typeOptions?: AnnotationsPitchforkTypeOptions;
}
/**
 * (Highstock) Options for annotation's shapes. Each shape inherits options from
 * the shapeOptions object. An option from the shapeOptions can be overwritten
 * by config for a specific shape.
 */
export interface AnnotationsPitchforkShapeOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The height of the shape.
     */
    height?: number;
    /**
     * (Highstock) The radius of the shape.
     */
    r?: number;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
    /**
     * (Highstock) The type of the shape, e.g. circle or rectangle.
     */
    type?: string;
    /**
     * (Highstock) The width of the shape.
     */
    width?: number;
}
/**
 * (Highstock) Inner background options.
 */
export interface AnnotationsPitchforkTypeInnerBackgroundOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: string;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
}
/**
 * (Highstock) Line options.
 */
export interface AnnotationsPitchforkTypeLineOptions {
    fill?: string;
}
/**
 * (Highstock) Additional options for an annotation with the type.
 */
export interface AnnotationsPitchforkTypeOptions {
    /**
     * (Highstock) Inner background options.
     */
    innerBackground?: AnnotationsPitchforkTypeInnerBackgroundOptions;
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsPitchforkTypeLineOptions;
    /**
     * (Highstock) Outer background options.
     */
    outerBackground?: AnnotationsPitchforkTypeOuterBackgroundOptions;
    points?: Array<AnnotationsPitchforkTypePointsOptions>;
    /**
     * (Highstock) This number defines which xAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    xAxis?: number;
    /**
     * (Highstock) This number defines which yAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    yAxis?: number;
}
/**
 * (Highstock) Outer background options.
 */
export interface AnnotationsPitchforkTypeOuterBackgroundOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: string;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
}
export interface AnnotationsPitchforkTypePointsOptions {
    controlPoint?: number;
    /**
     * (Highstock) The x position of the point.
     */
    x?: number;
    /**
     * (Highstock) The y position of the point.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's shapes.
 * Each shape inherits options from the shapeOptions object. An option from the
 * shapeOptions can be overwritten by config for a specific shape.
 */
export interface AnnotationsShapeOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Name of the dash style to use
     * for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The height of the shape.
     */
    height?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The radius of the shape.
     */
    r?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Defines additional snapping area
     * around an annotation making this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The URL for an image to use as
     * the annotation shape. Note, type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel stroke width of the
     * shape.
     */
    strokeWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The type of the shape, e.g.
     * circle or rectangle.
     */
    type?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the shape.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) An array of shapes for the
 * annotation. For options that apply to multiple shapes, then can be added to
 * the shapeOptions.
 */
export interface AnnotationsShapesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Name of the dash style to use
     * for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The height of the shape.
     */
    height?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Id of the marker which will be
     * drawn at the final vertex of the path. Custom markers can be defined in
     * defs property.
     */
    markerEnd?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Id of the marker which will be
     * drawn at the first vertex of the path. Custom markers can be defined in
     * defs property.
     */
    markerStart?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This option defines the point to
     * which the shape will be connected. It can be either the point which
     * exists in the series - it is referenced by the point's id - or a new
     * point with defined x, y properties and optionally axes.
     */
    point?: (string|AnnotationMockPointOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array of points for the
     * shape. This option is available for shapes which can use multiple points
     * such as path. A point can be either a point object or a point's id.
     */
    points?: Array<(string|AnnotationMockPointOptionsObject)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The radius of the shape.
     */
    r?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Defines additional snapping area
     * around an annotation making this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The URL for an image to use as
     * the annotation shape. Note, type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel stroke width of the
     * shape.
     */
    strokeWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The type of the shape, e.g.
     * circle or rectangle.
     */
    type?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the shape.
     */
    width?: number;
}
export interface AnnotationsTunnelControlPointOptions {
    events?: any;
}
/**
 * (Highstock) Options for annotation's labels. Each label inherits options from
 * the labelOptions object. An option from the labelOptions can be overwritten
 * by config for a specific label.
 */
export interface AnnotationsTunnelLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: AlignValue;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) A tunnel annotation.
 */
export interface AnnotationsTunnelOptions {
    controlPointOptions?: AnnotationsTunnelControlPointOptions;
    /**
     * (Highstock) Options for annotation's labels. Each label inherits options
     * from the labelOptions object. An option from the labelOptions can be
     * overwritten by config for a specific label.
     */
    labelOptions?: AnnotationsTunnelLabelOptions;
    /**
     * (Highstock) Options for annotation's shapes. Each shape inherits options
     * from the shapeOptions object. An option from the shapeOptions can be
     * overwritten by config for a specific shape.
     */
    shapeOptions?: AnnotationsTunnelShapeOptions;
    /**
     * (Highstock) Additional options for an annotation with the type.
     */
    typeOptions?: AnnotationsTunnelTypeOptions;
}
/**
 * (Highstock) Options for annotation's shapes. Each shape inherits options from
 * the shapeOptions object. An option from the shapeOptions can be overwritten
 * by config for a specific shape.
 */
export interface AnnotationsTunnelShapeOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The height of the shape.
     */
    height?: number;
    /**
     * (Highstock) The radius of the shape.
     */
    r?: number;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
    /**
     * (Highstock) The type of the shape, e.g. circle or rectangle.
     */
    type?: string;
    /**
     * (Highstock) The width of the shape.
     */
    width?: number;
}
/**
 * (Highstock) Background options.
 */
export interface AnnotationsTunnelTypeBackgroundOptions {
    fill?: string;
    strokeWidth?: number;
}
/**
 * (Highstock) Options for the control point which controls the annotation's
 * height.
 */
export interface AnnotationsTunnelTypeHeightControlPointOptions {
    events?: any;
}
/**
 * (Highstock) Line options.
 */
export interface AnnotationsTunnelTypeLineOptions {
    fill?: string;
    strokeWidth?: number;
}
/**
 * (Highstock) Additional options for an annotation with the type.
 */
export interface AnnotationsTunnelTypeOptions {
    /**
     * (Highstock) Background options.
     */
    background?: (object|AnnotationsTunnelTypeBackgroundOptions);
    /**
     * (Highstock) The height of the annotation in terms of yAxis.
     */
    height?: number;
    /**
     * (Highstock) Options for the control point which controls the annotation's
     * height.
     */
    heightControlPoint?: AnnotationsTunnelTypeHeightControlPointOptions;
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsTunnelTypeLineOptions;
    points?: Array<AnnotationsTunnelTypePointsOptions>;
    /**
     * (Highstock) This number defines which xAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    xAxis?: number;
    /**
     * (Highstock) This number defines which yAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    yAxis?: number;
}
export interface AnnotationsTunnelTypePointsOptions {
    controlPoint?: number;
    /**
     * (Highstock) The x position of the point.
     */
    x?: number;
    /**
     * (Highstock) The y position of the point.
     */
    y?: number;
}
/**
 * (Highstock) Options for annotation's labels. Each label inherits options from
 * the labelOptions object. An option from the labelOptions can be overwritten
 * by config for a specific label.
 */
export interface AnnotationsVerticalLineLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: AlignValue;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) A vertical line annotation.
 */
export interface AnnotationsVerticalLineOptions {
    /**
     * (Highstock) Options for annotation's labels. Each label inherits options
     * from the labelOptions object. An option from the labelOptions can be
     * overwritten by config for a specific label.
     */
    labelOptions?: AnnotationsVerticalLineLabelOptions;
    /**
     * (Highstock) Options for annotation's shapes. Each shape inherits options
     * from the shapeOptions object. An option from the shapeOptions can be
     * overwritten by config for a specific shape.
     */
    shapeOptions?: AnnotationsVerticalLineShapeOptions;
    /**
     * (Highstock) Additional options for an annotation with the type.
     */
    typeOptions?: AnnotationsVerticalLineTypeOptions;
}
/**
 * (Highstock) Options for annotation's shapes. Each shape inherits options from
 * the shapeOptions object. An option from the shapeOptions can be overwritten
 * by config for a specific shape.
 */
export interface AnnotationsVerticalLineShapeOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The height of the shape.
     */
    height?: number;
    /**
     * (Highstock) The radius of the shape.
     */
    r?: number;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
    /**
     * (Highstock) The type of the shape, e.g. circle or rectangle.
     */
    type?: string;
    /**
     * (Highstock) The width of the shape.
     */
    width?: number;
}
/**
 * (Highstock) Connector options.
 */
export interface AnnotationsVerticalLineTypeConnectorOptions {
    /**
     * (Highstock) Name of the dash style to use for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    markerEnd?: string;
    /**
     * (Highstock) Defines additional snapping area around an annotation making
     * this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highstock) The URL for an image to use as the annotation shape. Note,
     * type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highstock) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highstock) The pixel stroke width of the shape.
     */
    strokeWidth?: number;
}
/**
 * (Highstock) Label options.
 */
export interface AnnotationsVerticalLineTypeLabelOptions {
    /**
     * (Highstock) Accessibility options for an annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highstock) The alignment of the annotation's label. If right, the right
     * side of the label should be touching the point.
     */
    align?: AlignValue;
    /**
     * (Highstock) Whether to allow the annotation's labels to overlap. To make
     * the labels less sensitive for overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highstock) The background color or gradient for the annotation's label.
     */
    backgroundColor?: string;
    /**
     * (Highstock) The border color for the annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highstock) The border radius in pixels for the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width in pixels for the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highstock) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highstock) Whether to hide the annotation's label that is outside the
     * plot area.
     */
    crop?: boolean;
    /**
     * (Highstock) The label's pixel distance from the point.
     */
    distance?: number;
    /**
     * (Highstock) A format string for the data label.
     */
    format?: string;
    /**
     * (Highstock) Callback JavaScript function to format the annotation's
     * label. Note that if a `format` or `text` are defined, the format or text
     * take precedence and the formatter is ignored. `This` refers to a point
     * object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Whether the annotation is visible in the exported data table.
     */
    includeInDataExport?: boolean;
    offset?: number;
    /**
     * (Highstock) How to handle the annotation's label that flow outside the
     * plot area. The justify option aligns the label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highstock) When either the borderWidth or the backgroundColor is set,
     * this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highstock) The shadow of the box. The shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highstock) Styles for the annotation's label.
     */
    style?: CSSObject;
    /**
     * (Highstock) Alias for the format option.
     */
    text?: string;
    /**
     * (Highstock) Whether to use HTML to render the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highstock) The vertical alignment of the annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock) The x position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    x?: number;
    /**
     * (Highstock) The y position offset of the label relative to the point.
     * Note that if a `distance` is defined, the distance takes precedence over
     * `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highstock) Line options.
 */
export interface AnnotationsVerticalLineTypeLineOptions {
    fill?: string;
}
/**
 * (Highstock) Additional options for an annotation with the type.
 */
export interface AnnotationsVerticalLineTypeOptions {
    /**
     * (Highstock) Connector options.
     */
    connector?: AnnotationsVerticalLineTypeConnectorOptions;
    /**
     * (Highstock) Label options.
     */
    label?: AnnotationsVerticalLineTypeLabelOptions;
    /**
     * (Highstock) Line options.
     */
    line?: AnnotationsVerticalLineTypeLineOptions;
    points?: Array<AnnotationsVerticalLineTypePointsOptions>;
    /**
     * (Highstock) This number defines which xAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    xAxis?: number;
    /**
     * (Highstock) This number defines which yAxis the point is connected to. It
     * refers to either the axis id or the index of the axis in the xAxis array.
     */
    yAxis?: number;
}
export interface AnnotationsVerticalLineTypePointsOptions {
    controlPoint?: number;
    /**
     * (Highstock) The x position of the point.
     */
    x?: number;
    /**
     * (Highstock) The y position of the point.
     */
    y?: number;
}
/**
 * (Highcharts) Accessibility options for an axis. Requires the accessibility
 * module.
 */
export interface AxisAccessibilityOptionsObject {
    /**
     * (Highcharts) Description for an axis to expose to screen reader users.
     */
    description?: string;
    /**
     * (Highcharts) Enable axis accessibility features, including axis
     * information in the screen reader information region. If this is disabled
     * on the xAxis, the x values are not exposed to screen readers for the
     * individual data points by default.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Range description for an axis. Overrides the default range
     * description. Set to empty to disable range description for this axis.
     */
    rangeDescription?: string;
}
/**
 * (Highstock) A label on the axis next to the crosshair.
 *
 * In styled mode, the label is styled with the `.highcharts-crosshair-label`
 * class.
 */
export interface AxisCrosshairLabelOptions {
    /**
     * (Highstock) Alignment of the label compared to the axis. Defaults to
     * `"left"` for right-side axes, `"right"` for left-side axes and `"center"`
     * for horizontal axes.
     */
    align?: AlignValue;
    /**
     * (Highstock) The background color for the label. Defaults to the related
     * series color, or `#666666` if that is not available.
     */
    backgroundColor?: ColorType;
    /**
     * (Highstock) The border color for the crosshair label
     */
    borderColor?: ColorType;
    /**
     * (Highstock) The border corner radius of the crosshair label.
     */
    borderRadius?: number;
    /**
     * (Highstock) The border width for the crosshair label.
     */
    borderWidth?: number;
    /**
     * (Highstock) Flag to enable crosshair's label.
     */
    enabled?: boolean;
    /**
     * (Highstock) A format string for the crosshair label. Defaults to
     * `{value}` for numeric axes and `{value:%b %d, %Y}` for datetime axes.
     */
    format?: string;
    /**
     * (Highstock) Formatter function for the label text.
     */
    formatter?: XAxisCrosshairLabelFormatterCallbackFunction;
    /**
     * (Highstock) Padding inside the crosshair label.
     */
    padding?: number;
    /**
     * (Highstock) The shape to use for the label box.
     */
    shape?: string;
    /**
     * (Highstock) Text styles for the crosshair label.
     */
    style?: CSSObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Configure a crosshair that follows
 * either the mouse pointer or the hovered point.
 *
 * In styled mode, the crosshairs are styled in the `.highcharts-crosshair`,
 * `.highcharts-crosshair-thin` or `.highcharts-xaxis-category` classes.
 */
export interface AxisCrosshairOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the crosshair,
     * especially as a hook for styling.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the crosshair.
     * Defaults to `#cccccc` for numeric and datetime axes, and
     * `rgba(204,214,235,0.25)` for category axes, where the crosshair by
     * default highlights the whole category.
     */
    color?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The dash style for the
     * crosshair. See plotOptions.series.dashStyle for possible values.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) A label on the axis next to the crosshair.
     *
     * In styled mode, the label is styled with the
     * `.highcharts-crosshair-label` class.
     */
    label?: AxisCrosshairLabelOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the crosshair should
     * snap to the point or follow the pointer independent of points.
     */
    snap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the
     * crosshair. Defaults to 1 for numeric or datetime axes, and for one
     * category width for category axes.
     */
    width?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the crosshair.
     * Higher Z indices allow drawing the crosshair on top of the series or
     * behind the grid lines.
     */
    zIndex?: number;
}
/**
 * (Gantt) Show an indicator on the axis for the current date and time. Can be a
 * boolean or a configuration object similar to xAxis.plotLines.
 */
export interface AxisCurrentDateIndicatorOptions {
    /**
     * (Highstock) Flag to decide if plotLine should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Gantt) A custom class name, in addition to the default
     * `highcharts-plot-line`, to apply to each individual line.
     */
    className?: string;
    /**
     * (Gantt) The color of the line.
     */
    color?: ColorString;
    /**
     * (Gantt) The dashing or dot style for the plot line. For possible values
     * see this overview.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Gantt) An object defining mouse events for the plot line. Supported
     * properties are `click`, `mouseover`, `mouseout`, `mousemove`.
     */
    events?: (ColorAxisCurrentDateIndicatorEventsOptions|NavigatorXAxisCurrentDateIndicatorEventsOptions|XAxisCurrentDateIndicatorEventsOptions|ZAxisCurrentDateIndicatorEventsOptions);
    /**
     * (Gantt) An id used for identifying the plot line in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Gantt) Text labels for the plot bands
     */
    label?: (ColorAxisCurrentDateIndicatorLabelOptions|NavigatorXAxisCurrentDateIndicatorLabelOptions|XAxisCurrentDateIndicatorLabelOptions|ZAxisCurrentDateIndicatorLabelOptions);
    /**
     * (Gantt) The width or thickness of the plot line.
     */
    width?: number;
    /**
     * (Gantt) The z index of the plot line within the chart.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Gantt) For a datetime axis, the scale will
 * automatically adjust to the appropriate unit. This member gives the default
 * string representations used for each unit. For intermediate values, different
 * units may be used, for example the `day` unit can be used on midnight and
 * `hour` unit be used for intermediate values on the same axis.
 *
 * For an overview of the replacement codes, see dateFormat.
 *
 * Defaults to: (see online documentation for example)
 */
export interface AxisDateTimeLabelFormatsOptions {
    day?: (string|AxisDateTimeLabelFormatsOptionsObject);
    hour?: (string|AxisDateTimeLabelFormatsOptionsObject);
    millisecond?: (string|AxisDateTimeLabelFormatsOptionsObject);
    minute?: (string|AxisDateTimeLabelFormatsOptionsObject);
    month?: (string|AxisDateTimeLabelFormatsOptionsObject);
    second?: (string|AxisDateTimeLabelFormatsOptionsObject);
    week?: (string|AxisDateTimeLabelFormatsOptionsObject);
    year?: (string|AxisDateTimeLabelFormatsOptionsObject);
}
export interface AxisDateTimeLabelFormatsOptionsObject {
    main?: string;
    range?: boolean;
}
export interface AxisLabelsFormatterContextObject<T> {
    axis: Axis;
    chart: Chart;
    isFirst: boolean;
    isLast: boolean;
    pos: number;
    value: T;
}
/**
 * Options for the path on the Axis to be calculated.
 */
export interface AxisPlotLinePathOptionsObject {
    /**
     * Used in Highstock. When `true`, plot paths (crosshair, plotLines,
     * gridLines) will be rendered on all axes when defined on the first axis.
     */
    acrossPanes?: boolean;
    /**
     * If `false`, the function will return null when it falls outside the axis
     * bounds. If `true`, the function will return a path aligned to the plot
     * area sides if it falls outside. If `pass`, it will return a path outside.
     */
    force?: (boolean|string);
    /**
     * Line width used for calculation crisp line coordinates. Defaults to 1.
     */
    lineWidth?: number;
    /**
     * Use old coordinates (for resizing and rescaling). If not set, defaults to
     * `false`.
     */
    old?: boolean;
    /**
     * Used in Polar axes. Reverse the positions for concatenation of polygonal
     * plot bands
     */
    reverse?: boolean;
    /**
     * If given, return the plot line path of a pixel position on the axis.
     */
    translatedValue?: number;
    /**
     * Axis value.
     */
    value?: number;
}
export interface AxisPointBreakEventObject {
    brk: Dictionary<number>;
    point: Point;
    preventDefault: Function;
    target: SVGElement;
    type: ("pointBreak"|"pointInBreak");
}
export interface AxisSetExtremesEventObject extends ExtremesObject {
    preventDefault: Function;
    target: SVGElement;
    trigger: (string|AxisExtremesTriggerValue);
    type: "setExtremes";
}
/**
 * Time ticks.
 */
export interface AxisTickPositionsArray extends Array<number> {
    info?: TimeTicksInfoObject;
}
/**
 * Bounding box of an element.
 */
export interface BBoxObject extends PositionObject {
    /**
     * Height of the bounding box.
     */
    height: number;
    /**
     * Width of the bounding box.
     */
    width: number;
    /**
     * Horizontal position of the bounding box.
     */
    x: number;
    /**
     * Vertical position of the bounding box.
     */
    y: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Debugging options for boost. Useful
 * for benchmarking, and general timing.
 */
export interface BoostDebugOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Show the number of points
     * skipped through culling.
     *
     * When set to true, the number of points skipped in series processing is
     * outputted. Points are skipped if they are closer than 1 pixel from each
     * other.
     */
    showSkipSummary?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Time the WebGL to SVG buffer
     * copy
     *
     * After rendering, the result is copied to an image which is injected into
     * the SVG.
     *
     * If this property is set to true, the time it takes for the buffer copy to
     * complete is outputted.
     */
    timeBufferCopy?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Time the building of the k-d
     * tree.
     *
     * This outputs the time spent building the k-d tree used for markers etc.
     *
     * Note that the k-d tree is built async, and runs post-rendering.
     * Following, it does not affect the performance of the rendering itself.
     */
    timeKDTree?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Time the series rendering.
     *
     * This outputs the time spent on actual rendering in the console when set
     * to true.
     */
    timeRendering?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Time the series processing.
     *
     * This outputs the time spent on transforming the series data to vertex
     * buffers when set to true.
     */
    timeSeriesProcessing?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Time the the WebGL setup.
     *
     * This outputs the time spent on setting up the WebGL context, creating
     * shaders, and textures.
     */
    timeSetup?: boolean;
}
export interface BoostOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If set to true, the whole chart
     * will be boosted if one of the series crosses its threshold, and all the
     * series can be boosted.
     */
    allowForce?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Debugging options for boost.
     * Useful for benchmarking, and general timing.
     */
    debug?: BoostDebugOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable boost on a
     * chart.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the series threshold for
     * when the boost should kick in globally.
     *
     * Setting to e.g. 20 will cause the whole chart to enter boost mode if
     * there are 20 or more series active. When the chart is in boost mode,
     * every series in it will be rendered to a common canvas. This offers a
     * significant speed improvment in charts with a very high amount of series.
     */
    seriesThreshold?: (number|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable GPU
     * translations. GPU translations are faster than doing the translation in
     * JavaScript.
     *
     * This option may cause rendering issues with certain datasets. Namely, if
     * your dataset has large numbers with small increments (such as
     * timestamps), it won't work correctly. This is due to floating point
     * precission.
     */
    useGPUTranslations?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable pre-allocation
     * of vertex buffers.
     *
     * Enabling this will make it so that the binary data arrays required for
     * storing the series data will be allocated prior to transforming the data
     * to a WebGL-compatible format.
     *
     * This saves a copy operation on the order of O(n) and so is significantly
     * more performant. However, this is currently an experimental option, and
     * may cause visual artifacts with some datasets.
     *
     * As such, care should be taken when using this setting to make sure that
     * it doesn't cause any rendering glitches with the given use-case.
     */
    usePreallocated?: boolean;
}
export interface BubbleLegendFormatterContextObject {
    /**
     * The center y position of the range.
     */
    center: number;
    /**
     * The radius of the bubble range.
     */
    radius: number;
    /**
     * The bubble value.
     */
    value: number;
}
/**
 * The chart caption. The caption has an `update` method that allows modifying
 * the options directly or indirectly via `chart.update`.
 */
export interface CaptionObject extends SVGElement {
    /**
     * Modify options for the caption.
     *
     * @param captionOptions
     *        Options to modify.
     *
     * @param redraw
     *        Whether to redraw the chart after the caption is altered. If doing
     *        more operations on the chart, it is a good idea to set redraw to
     *        false and call Chart#redraw after.
     */
    update(captionOptions: CaptionOptions, redraw?: boolean): void;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The chart's caption, which will
 * render below the chart and will be part of exported charts. The caption can
 * be updated after chart initialization through the `Chart.update` or
 * `Chart.caption.update` methods.
 */
export interface CaptionOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The horizontal alignment of the
     * caption. Can be one of "left", "center" and "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When the caption is floating,
     * the plot area will not move to make space for it.
     */
    floating?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The margin between the caption
     * and the plot area.
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the caption.
     *
     * In styled mode, the caption style is given in the `.highcharts-caption`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The caption text of the chart.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the text.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * caption. Can be one of `"top"`, `"middle"` and `"bottom"`. When middle,
     * the caption behaves as floating.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position of the caption
     * relative to the alignment within `chart.spacingLeft` and
     * `chart.spacingRight`.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position of the caption
     * relative to the alignment within `chart.spacingTop` and
     * `chart.spacingBottom`.
     */
    y?: number;
}
/**
 * (Highcharts) The back side of the frame around a 3D chart.
 */
export interface Chart3dFrameBackOptions {
    /**
     * (Highcharts) The color of the panel.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The thickness of the panel.
     */
    size?: number;
    /**
     * (Highcharts) Whether to display the frame. Possible values are `true`,
     * `false`, `"auto"` to display only the frames behind the data, and
     * `"default"` to display faces behind the data based on the axis layout,
     * ignoring the point of view.
     */
    visible?: ("auto"|"default"|boolean);
}
/**
 * (Highcharts) The bottom of the frame around a 3D chart.
 */
export interface Chart3dFrameBottomOptions {
    /**
     * (Highcharts) The color of the panel.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The thickness of the panel.
     */
    size?: number;
    /**
     * (Highcharts) Whether to display the frame. Possible values are `true`,
     * `false`, `"auto"` to display only the frames behind the data, and
     * `"default"` to display faces behind the data based on the axis layout,
     * ignoring the point of view.
     */
    visible?: ("auto"|"default"|boolean);
}
/**
 * (Highcharts) The front of the frame around a 3D chart.
 */
export interface Chart3dFrameFrontOptions {
    /**
     * (Highcharts) The color of the panel.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The thickness of the panel.
     */
    size?: number;
    /**
     * (Highcharts) Whether to display the frame. Possible values are `true`,
     * `false`, `"auto"` to display only the frames behind the data, and
     * `"default"` to display faces behind the data based on the axis layout,
     * ignoring the point of view.
     */
    visible?: ("auto"|"default"|boolean);
}
/**
 * (Highcharts) The left side of the frame around a 3D chart.
 */
export interface Chart3dFrameLeftOptions {
    /**
     * (Highcharts) The color of the panel.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The thickness of the panel.
     */
    size?: number;
    /**
     * (Highcharts) Whether to display the frame. Possible values are `true`,
     * `false`, `"auto"` to display only the frames behind the data, and
     * `"default"` to display faces behind the data based on the axis layout,
     * ignoring the point of view.
     */
    visible?: ("auto"|"default"|boolean);
}
/**
 * (Highcharts) Provides the option to draw a frame around the charts by
 * defining a bottom, front and back panel.
 */
export interface Chart3dFrameOptions {
    /**
     * (Highcharts) The back side of the frame around a 3D chart.
     */
    back?: Chart3dFrameBackOptions;
    /**
     * (Highcharts) The bottom of the frame around a 3D chart.
     */
    bottom?: Chart3dFrameBottomOptions;
    /**
     * (Highcharts) The front of the frame around a 3D chart.
     */
    front?: Chart3dFrameFrontOptions;
    /**
     * (Highcharts) The left side of the frame around a 3D chart.
     */
    left?: Chart3dFrameLeftOptions;
    /**
     * (Highcharts) The right of the frame around a 3D chart.
     */
    right?: Chart3dFrameRightOptions;
    /**
     * (Highcharts) General pixel thickness for the frame faces.
     */
    size?: number;
    /**
     * (Highcharts) The top of the frame around a 3D chart.
     */
    top?: Chart3dFrameTopOptions;
    /**
     * (Highcharts) Whether the frames are visible.
     */
    visible?: string;
}
/**
 * (Highcharts) The right of the frame around a 3D chart.
 */
export interface Chart3dFrameRightOptions {
    /**
     * (Highcharts) The color of the panel.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The thickness of the panel.
     */
    size?: number;
    /**
     * (Highcharts) Whether to display the frame. Possible values are `true`,
     * `false`, `"auto"` to display only the frames behind the data, and
     * `"default"` to display faces behind the data based on the axis layout,
     * ignoring the point of view.
     */
    visible?: ("auto"|"default"|boolean);
}
/**
 * (Highcharts) The top of the frame around a 3D chart.
 */
export interface Chart3dFrameTopOptions {
    /**
     * (Highcharts) The color of the panel.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The thickness of the panel.
     */
    size?: number;
    /**
     * (Highcharts) Whether to display the frame. Possible values are `true`,
     * `false`, `"auto"` to display only the frames behind the data, and
     * `"default"` to display faces behind the data based on the axis layout,
     * ignoring the point of view.
     */
    visible?: ("auto"|"default"|boolean);
}
/**
 * (Highcharts) Options to render charts in 3 dimensions. This feature requires
 * `highcharts-3d.js`, found in the download package or online at
 * code.highcharts.com/highcharts-3d.js.
 */
export interface Chart3dOptions {
    /**
     * (Highcharts) One of the two rotation angles for the chart.
     */
    alpha?: number;
    /**
     * (Highcharts) Set it to `"auto"` to automatically move the labels to the
     * best edge.
     */
    axisLabelPosition?: ("auto"|null);
    /**
     * (Highcharts) One of the two rotation angles for the chart.
     */
    beta?: number;
    /**
     * (Highcharts) The total depth of the chart.
     */
    depth?: number;
    /**
     * (Highcharts) Wether to render the chart using the 3D functionality.
     */
    enabled?: boolean;
    /**
     * (Highcharts) Whether the 3d box should automatically adjust to the chart
     * plot area.
     */
    fitToPlot?: boolean;
    /**
     * (Highcharts) Provides the option to draw a frame around the charts by
     * defining a bottom, front and back panel.
     */
    frame?: Chart3dFrameOptions;
    /**
     * (Highcharts) Defines the distance the viewer is standing in front of the
     * chart, this setting is important to calculate the perspective effect in
     * column and scatter charts. It is not used for 3D pie charts.
     */
    viewDistance?: number;
}
/**
 * Contains common event information. Through the `options` property you can
 * access the series options that were passed to the `addSeries` method.
 */
export interface ChartAddSeriesEventObject {
    /**
     * The series options that were passed to the `addSeries` method.
     */
    options: SeriesOptionsType;
    /**
     * Prevents the default behaviour of the event.
     */
    preventDefault: Function;
    /**
     * The event target.
     */
    target: Chart;
    /**
     * The event type.
     */
    type: "addSeries";
}
/**
 * Contains an axes of the clicked spot.
 */
export interface ChartClickEventAxisObject {
    /**
     * Axis at the clicked spot.
     */
    axis: Axis;
    /**
     * Axis value at the clicked spot.
     */
    value: number;
}
/**
 * Contains information about the clicked spot on the chart. Remember the unit
 * of a datetime axis is milliseconds since 1970-01-01 00:00:00.
 */
export interface ChartClickEventObject extends PointerEventObject {
    /**
     * Information about the x-axis on the clicked spot.
     */
    xAxis: Array<ChartClickEventAxisObject>;
    /**
     * Information about the y-axis on the clicked spot.
     */
    yAxis: Array<ChartClickEventAxisObject>;
    /**
     * Information about the z-axis on the clicked spot.
     */
    zAxis?: Array<ChartClickEventAxisObject>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Event listeners for the chart.
 */
export interface ChartEventsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when a series is added to
     * the chart after load time, using the `addSeries` method. One parameter,
     * `event`, is passed to the function, containing common event information.
     * Through `event.options` you can access the series options that were
     * passed to the `addSeries` method. Returning false prevents the series
     * from being added.
     */
    addSeries?: ChartAddSeriesCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires after a chart is printed
     * through the context menu item or the `Chart.print` method.
     */
    afterPrint?: ExportingAfterPrintCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires before a chart is printed
     * through the context menu item or the `Chart.print` method.
     */
    beforePrint?: ExportingBeforePrintCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when clicking on the plot
     * background. One parameter, `event`, is passed to the function, containing
     * common event information.
     *
     * Information on the clicked spot can be found through `event.xAxis` and
     * `event.yAxis`, which are arrays containing the axes of each dimension and
     * each axis' value at the clicked spot. The primary axes are
     * `event.xAxis[0]` and `event.yAxis[0]`. Remember the unit of a datetime
     * axis is milliseconds since 1970-01-01 00:00:00. (see online documentation
     * for example)
     */
    click?: ChartClickCallbackFunction;
    /**
     * (Highcharts, Highmaps) Fires when a drilldown point is clicked, before
     * the new series is added. This event is also utilized for async drilldown,
     * where the seriesOptions are not added by option, but rather loaded async.
     * Note that when clicking a category label to trigger multiple series
     * drilldown, one `drilldown` event is triggered per point in the category.
     *
     * Event arguments:
     *
     * - `category`: If a category label was clicked, which index.
     *
     * - `originalEvent`: The original browser event (usually click) that
     * triggered the drilldown.
     *
     * - `point`: The originating point.
     *
     * - `points`: If a category label was clicked, this array holds all points
     * corresponding to the category.
     *
     * - `seriesOptions`: Options for the new series.
     */
    drilldown?: DrilldownCallbackFunction;
    /**
     * (Highcharts, Highmaps) Fires when drilling up from a drilldown series.
     */
    drillup?: DrillupCallbackFunction;
    /**
     * (Highcharts, Highmaps) In a chart with multiple drilldown series, this
     * event fires after all the series have been drilled up.
     */
    drillupall?: DrillupAllCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback that fires while
     * exporting data. This allows the modification of data rows before
     * processed into the final format.
     */
    exportData?: ExportDataCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when the chart is finished
     * loading. Since v4.2.2, it also waits for images to be loaded, for example
     * from point markers. One parameter, `event`, is passed to the function,
     * containing common event information.
     *
     * There is also a second parameter to the chart constructor where a
     * callback function can be passed to be executed on chart.load.
     */
    load?: ChartLoadCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when the chart is redrawn,
     * either after a call to `chart.redraw()` or after an axis, series or point
     * is modified with the `redraw` option set to `true`. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    redraw?: ChartRedrawCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires after initial load of the
     * chart (directly after the `load` event), and after each redraw (directly
     * after the `redraw` event).
     */
    render?: ChartRenderCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when an area of the chart
     * has been selected. Selection is enabled by setting the chart's zoomType.
     * One parameter, `event`, is passed to the function, containing common
     * event information. The default action for the selection event is to zoom
     * the chart to the selected area. It can be prevented by calling
     * `event.preventDefault()` or return false.
     *
     * Information on the selected area can be found through `event.xAxis` and
     * `event.yAxis`, which are arrays containing the axes of each dimension and
     * each axis' min and max values. The primary axes are `event.xAxis[0]` and
     * `event.yAxis[0]`. Remember the unit of a datetime axis is milliseconds
     * since 1970-01-01 00:00:00. (see online documentation for example)
     */
    selection?: ChartSelectionCallbackFunction;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) General options for the chart.
 */
export interface ChartOptions {
    /**
     * (Highcharts, Highstock, Gantt) When using multiple axis, the ticks of two
     * or more opposite axes will automatically be aligned by adding ticks to
     * the axis or axes with the least ticks, as if `tickAmount` were specified.
     *
     * This can be prevented by setting `alignTicks` to false. If the grid lines
     * look messy, it's a good idea to hide them for the secondary axis by
     * setting `gridLineWidth` to 0.
     *
     * If `startOnTick` or `endOnTick` in an Axis options are set to false, then
     * the `alignTicks ` will be disabled for the Axis.
     *
     * Disabled for logarithmic axes.
     */
    alignTicks?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the overall animation for
     * all chart updating. Animation can be disabled throughout the chart by
     * setting it to false here. It can be overridden for each individual API
     * method as a function parameter. The only animation not affected by this
     * option is the initial series animation, see plotOptions.series.animation.
     *
     * The animation can either be set as a boolean or a configuration object.
     * If `true`, it will use the 'swing' jQuery easing and a duration of 500
     * ms. If used as a configuration object, the following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: A string reference to an easing function set on the `Math`
     * object. See the easing demo.
     *
     * When zooming on a series with less than 100 points, the chart redraw will
     * be done with animation, but in case of more data points, it is necessary
     * to set this option to ensure animation on zoom.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the outer chart area.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the outer chart
     * border.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The corner radius of the outer
     * chart border.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the outer
     * chart border.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A CSS class name to apply to the
     * charts container `div`, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) In styled mode, this sets how
     * many colors the class names should rotate between. With ten colors,
     * series (or points) are given class names like `highcharts-color-0`,
     * `highcharts-color-0` [...] `highcharts-color-9`. The equivalent in
     * non-styled mode is to set colors using the colors setting.
     */
    colorCount?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to display errors on the
     * chart. When `false`, the errors will be shown only in the console.
     */
    displayErrors?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event listeners for the chart.
     */
    events?: ChartEventsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An explicit height for the
     * chart. If a _number_, the height is given in pixels. If given a
     * _percentage string_ (for example `'56%'`), the height is given as the
     * percentage of the actual chart width. This allows for preserving the
     * aspect ratio across responsive sizes.
     *
     * By default (when `null`) the height is calculated from the offset height
     * of the containing element, or 400 pixels if the containing element's
     * height is 0.
     */
    height?: (number|string|null);
    /**
     * (Highcharts, Highstock, Gantt) If true, the axes will scale to the
     * remaining visible series once one series is hidden. If false, hiding and
     * showing a series will not affect the axes or the other series. For
     * stacks, once one series within the stack is hidden, the rest of the stack
     * will close in around it even if the axis is not affected.
     */
    ignoreHiddenSeries?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to invert the axes so that the x
     * axis is vertical and y axis is horizontal. When `true`, the x axis is
     * reversed by default.
     */
    inverted?: boolean;
    /**
     * (Highmaps) Default `mapData` for all series. If set to a string, it
     * functions as an index into the `Highcharts.maps` array. Otherwise it is
     * interpreted as map data.
     */
    map?: (string|GeoJSON|Array<any>);
    /**
     * (Highmaps) Set lat/lon transformation definitions for the chart. If not
     * defined, these are extracted from the map data.
     */
    mapTransforms?: any;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The margin between the outer
     * edge of the chart and the plot area. The numbers in the array designate
     * top, right, bottom and left respectively. Use the options `marginTop`,
     * `marginRight`, `marginBottom` and `marginLeft` for shorthand setting of
     * one option.
     *
     * By default there is no margin. The actual space is dynamically calculated
     * from the offset of axis labels, axis title, title, subtitle and legend in
     * addition to the `spacingTop`, `spacingRight`, `spacingBottom` and
     * `spacingLeft` options.
     */
    margin?: (number|Array<number>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The margin between the bottom
     * outer edge of the chart and the plot area. Use this to set a fixed pixel
     * value for the margin as opposed to the default dynamic margin. See also
     * `spacingBottom`.
     */
    marginBottom?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The margin between the left
     * outer edge of the chart and the plot area. Use this to set a fixed pixel
     * value for the margin as opposed to the default dynamic margin. See also
     * `spacingLeft`.
     */
    marginLeft?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The margin between the right
     * outer edge of the chart and the plot area. Use this to set a fixed pixel
     * value for the margin as opposed to the default dynamic margin. See also
     * `spacingRight`.
     */
    marginRight?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The margin between the top outer
     * edge of the chart and the plot area. Use this to set a fixed pixel value
     * for the margin as opposed to the default dynamic margin. See also
     * `spacingTop`.
     */
    marginTop?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback function to override
     * the default function that formats all the numbers in the chart. Returns a
     * string with the formatted number.
     */
    numberFormatter?: NumberFormatterCallbackFunction;
    /**
     * (Highcharts) Options to render charts in 3 dimensions. This feature
     * requires `highcharts-3d.js`, found in the download package or online at
     * code.highcharts.com/highcharts-3d.js.
     */
    options3d?: Chart3dOptions;
    /**
     * (Highcharts, Gantt) Allows setting a key to switch between zooming and
     * panning. Can be one of `alt`, `ctrl`, `meta` (the command key on Mac and
     * Windows key on Windows) or `shift`. The keys are mapped directly to the
     * key properties of the click event argument (`event.altKey`,
     * `event.ctrlKey`, `event.metaKey` and `event.shiftKey`).
     */
    panKey?: OptionsPanKeyValue;
    /**
     * (Highcharts, Highstock, Gantt) Allow panning in a chart. Best used with
     * panKey to combine zooming and panning.
     *
     * On touch devices, when the tooltip.followTouchMove option is `true`
     * (default), panning requires two fingers. To allow panning with one
     * finger, set `followTouchMove` to `false`.
     */
    panning?: ChartPanningOptions;
    /**
     * (Highcharts) Common options for all yAxes rendered in a parallel
     * coordinates plot. This feature requires
     * `modules/parallel-coordinates.js`.
     *
     * The default options are: (see online documentation for example)
     */
    parallelAxes?: (ChartParallelAxesOptions|Array<ChartParallelAxesOptions>);
    /**
     * (Highcharts) Flag to render charts as a parallel coordinates plot. In a
     * parallel coordinates plot (||-coords) by default all required yAxes are
     * generated and the legend is disabled. This feature requires
     * `modules/parallel-coordinates.js`.
     */
    parallelCoordinates?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Equivalent to zoomType, but for multitouch
     * gestures only. By default, the `pinchType` is the same as the `zoomType`
     * setting. However, pinching can be enabled separately in some cases, for
     * example in stock charts where a mouse drag pans the chart, while pinching
     * is enabled. When tooltip.followTouchMove is true, pinchType only applies
     * to two-finger touches.
     */
    pinchType?: OptionsPinchTypeValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the plot area.
     */
    plotBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The URL for an image to use as
     * the plot background. To set an image as the background for the entire
     * chart, set a CSS background image to the container element. Note that for
     * the image to be applied to exported charts, its URL needs to be
     * accessible by the export server.
     */
    plotBackgroundImage?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the inner chart or
     * plot area border.
     */
    plotBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the plot area
     * border.
     */
    plotBorderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to apply a drop shadow
     * to the plot area. Requires that plotBackgroundColor be set. The shadow
     * can be an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    plotShadow?: (boolean|CSSObject);
    /**
     * (Highcharts) When true, cartesian charts like line, spline, area and
     * column are transformed into the polar coordinate system. This produces
     * _polar charts_, also known as _radar charts_.
     */
    polar?: boolean;
    /**
     * (Highmaps) Allows to manually load the proj4 library from Highcharts
     * options instead of the `window`. In case of loading the library from a
     * `script` tag, this option is not needed, it will be loaded from there by
     * default.
     */
    proj4?: Function;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to reflow the chart to
     * fit the width of the container div on resizing the window.
     */
    reflow?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The HTML element where the chart
     * will be rendered. If it is a string, the element by that id is used. The
     * HTML element can also be passed by direct reference, or as the first
     * argument of the chart constructor, in which case the option is not
     * needed.
     */
    renderTo?: (string|HTMLDOMElement);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The button that appears after a
     * selection zoom, allowing the user to reset zoom.
     */
    resetZoomButton?: ChartResetZoomButtonOptions;
    /**
     * (Highcharts, Gantt) Options for a scrollable plot area. This feature
     * provides a minimum size for the plot area of the chart. If the size gets
     * smaller than this, typically on mobile devices, a native browser
     * scrollbar is presented. This scrollbar provides smooth scrolling for the
     * contents of the plot area, whereas the title, legend and unaffected axes
     * are fixed.
     *
     * Since v7.1.2, a scrollable plot area can be defined for either horizontal
     * or vertical scrolling, depending on whether the `minWidth` or `minHeight`
     * option is set.
     */
    scrollablePlotArea?: ChartScrollablePlotAreaOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color of the
     * marker square when selecting (zooming in on) an area of the chart.
     */
    selectionMarkerFill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to apply a drop shadow
     * to the outer chart area. Requires that backgroundColor be set. The shadow
     * can be an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|CSSObject);
    /**
     * (Highcharts, Gantt) Whether to show the axes initially. This only applies
     * to empty charts where series are added dynamically, as axes are
     * automatically added to cartesian series.
     */
    showAxes?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The distance between the outer
     * edge of the chart and the content, like title or legend, or axis title
     * and labels if present. The numbers in the array designate top, right,
     * bottom and left respectively. Use the options spacingTop, spacingRight,
     * spacingBottom and spacingLeft options for shorthand setting of one
     * option.
     */
    spacing?: Array<number>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The space between the bottom
     * edge of the chart and the content (plot area, axis title and labels,
     * title, subtitle or legend in top position).
     */
    spacingBottom?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The space between the left edge
     * of the chart and the content (plot area, axis title and labels, title,
     * subtitle or legend in top position).
     */
    spacingLeft?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The space between the right edge
     * of the chart and the content (plot area, axis title and labels, title,
     * subtitle or legend in top position).
     */
    spacingRight?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The space between the top edge
     * of the chart and the content (plot area, axis title and labels, title,
     * subtitle or legend in top position).
     */
    spacingTop?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Additional CSS styles to apply
     * inline to the container `div`. Note that since the default font styles
     * are applied in the renderer, it is ignorant of the individual chart
     * options and must be set globally.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to apply styled mode.
     * When in styled mode, no presentational attributes or CSS are applied to
     * the chart SVG. Instead, CSS rules are required to style the chart. The
     * default style sheet is available from
     * `https://code.highcharts.com/css/highcharts.css`.
     */
    styledMode?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The default series type for the
     * chart. Can be any of the chart types listed under plotOptions and series
     * or can be a series provided by an additional module.
     *
     * In TypeScript this option has no effect in sense of typing and instead
     * the `type` option must always be set in the series.
     */
    type?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An explicit width for the chart.
     * By default (when `null`) the width is calculated from the offset width of
     * the containing element.
     */
    width?: (number|string|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set a key to hold when dragging
     * to zoom the chart. This is useful to avoid zooming while moving points.
     * Should be set different than chart.panKey.
     */
    zoomKey?: OptionsZoomKeyValue;
    /**
     * (Highcharts, Highstock, Gantt) Decides in what dimensions the user can
     * zoom by dragging the mouse. Can be one of `x`, `y` or `xy`.
     */
    zoomType?: OptionsZoomTypeValue;
}
/**
 * (Highcharts, Highstock, Gantt) Allow panning in a chart. Best used with
 * panKey to combine zooming and panning.
 *
 * On touch devices, when the tooltip.followTouchMove option is `true`
 * (default), panning requires two fingers. To allow panning with one finger,
 * set `followTouchMove` to `false`.
 */
export interface ChartPanningOptions {
    /**
     * (Highcharts, Highstock, Gantt) Enable or disable chart panning.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Decides in what dimensions the user can
     * pan the chart. Can be one of `x`, `y`, or `xy`.
     */
    type?: OptionsTypeValue;
}
/**
 * (Highcharts) Event handlers for the axis.
 */
export interface ChartParallelAxesEventsOptions {
    /**
     * (Highcharts, Gantt) An event fired after the breaks have rendered.
     */
    afterBreaks?: AxisEventCallbackFunction;
    /**
     * (Highcharts) As opposed to the `setExtremes` event, this event fires
     * after the final min and max values are computed and corrected for
     * `minRange`.
     *
     * Fires when the minimum and maximum is set for the axis, either by calling
     * the `.setExtremes()` method or by selecting an area in the chart. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in axis
     * values. The actual data extremes are found in `event.dataMin` and
     * `event.dataMax`.
     */
    afterSetExtremes?: AxisSetExtremesEventCallbackFunction;
    /**
     * (Highcharts, Gantt) An event fired when a break from this axis occurs on
     * a point.
     */
    pointBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) An event fired when a point falls inside a
     * break from this axis.
     */
    pointInBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts) Fires when the minimum and maximum is set for the axis,
     * either by calling the `.setExtremes()` method or by selecting an area in
     * the chart. One parameter, `event`, is passed to the function, containing
     * common event information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in data
     * values. When an axis is zoomed all the way out from the "Reset zoom"
     * button, `event.min` and `event.max` are null, and the new extremes are
     * set based on `this.dataMin` and `this.dataMax`.
     */
    setExtremes?: AxisSetExtremesEventCallbackFunction;
}
/**
 * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
 */
export interface ChartParallelAxesGridOptions {
    /**
     * (Gantt) Set border color for the label grid lines.
     */
    borderColor?: ColorString;
    /**
     * (Gantt) Set border width of the label grid lines.
     */
    borderWidth?: number;
    /**
     * (Gantt) Set cell height for grid axis labels. By default this is
     * calculated from font size. This option only applies to horizontal axes.
     */
    cellHeight?: number;
    /**
     * (Gantt) Set specific options for each column (or row for horizontal axes)
     * in the grid. Each extra column/row is its own axis, and the axis options
     * can be set here.
     */
    columns?: Array<XAxisOptions>;
    /**
     * (Gantt) Enable grid on the axis labels. Defaults to true for Gantt
     * charts.
     */
    enabled?: boolean;
}
/**
 * (Gantt) Set options on specific levels in a tree grid axis. Takes precedence
 * over labels options.
 */
export interface ChartParallelAxesLabelsLevelsOptions {
    /**
     * (Gantt) Specify the level which the options within this object applies
     * to.
     */
    level?: number;
    style?: CSSObject;
}
/**
 * (Highcharts) The axis labels show the number or category for each tick.
 *
 * Since v8.0.0: Labels are animated in categorized x-axis with updating data if
 * `tickInterval` and `step` is set to 1.
 */
export interface ChartParallelAxesLabelsOptions {
    /**
     * (Highcharts) What part of the string the given position is anchored to.
     * Can be one of `"left"`, `"center"` or `"right"`. The exact position also
     * depends on the `labels.x` setting.
     *
     * Angular gauges and solid gauges defaults to `"center"`. Solid gauges with
     * two labels have additional option `"auto"` for automatic horizontal and
     * vertical alignment.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Gantt) For horizontal axes, the allowed degrees
     * of label rotation to prevent overlapping labels. If there is enough
     * space, labels are not rotated. As the chart gets narrower, it will start
     * rotating the labels -45 degrees, then remove every second label and try
     * again with rotations 0 and -45 etc. Set it to `false` to disable
     * rotation, which will cause the labels to word-wrap if possible.
     */
    autoRotation?: (false|Array<number>);
    /**
     * (Highcharts, Gantt) When each category width is more than this many
     * pixels, we don't apply auto rotation. Instead, we lay out the axis label
     * with word wrap. A lower limit makes sense when the label contains
     * multiple short words that don't extend the available horizontal space for
     * each label.
     */
    autoRotationLimit?: number;
    /**
     * (Highcharts) Angular gauges and solid gauges only. The label's pixel
     * distance from the perimeter of the plot area.
     *
     * Since v7.1.2: If it's a percentage string, it is interpreted the same as
     * series.radius, so label can be aligned under the gauge's shape.
     */
    distance?: (number|string);
    /**
     * (Highcharts) Enable or disable the axis labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts) A format string for the axis label.
     */
    format?: string;
    /**
     * (Highcharts) Callback JavaScript function to format the label. The value
     * is given by `this.value`. Additional properties for `this` are `axis`,
     * `chart`, `isFirst` and `isLast`. The value of the default label formatter
     * can be retrieved by calling `this.axis.defaultLabelFormatter.call(this)`
     * within the function.
     *
     * Defaults to: (see online documentation for example)
     */
    formatter?: AxisLabelsFormatterCallbackFunction;
    /**
     * (Gantt) The number of pixels to indent the labels per level in a treegrid
     * axis.
     */
    indentation?: number;
    /**
     * (Gantt) Set options on specific levels in a tree grid axis. Takes
     * precedence over labels options.
     */
    levels?: Array<ChartParallelAxesLabelsLevelsOptions>;
    /**
     * (Highcharts) How to handle overflowing labels on horizontal axis. If set
     * to `"allow"`, it will not be aligned at all. By default it `"justify"`
     * labels inside the chart area. If there is room to move it, it will be
     * aligned to the edge, else it will be removed.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Gantt) The pixel padding for axis labels, to ensure white
     * space between them.
     */
    padding?: number;
    /**
     * (Highcharts) Defines how the labels are be repositioned according to the
     * 3D chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     */
    position3d?: OptionsPosition3dValue;
    /**
     * (Highcharts, Gantt) Whether to reserve space for the labels. By default,
     * space is reserved for the labels in these cases:
     *
     * * On all horizontal axes.
     *
     * * On vertical axes if `label.align` is `right` on a left-side axis or
     * `left` on a right-side axis.
     *
     * * On vertical axes if `label.align` is `center`.
     *
     * This can be turned off when for example the labels are rendered inside
     * the plot area instead of outside.
     */
    reserveSpace?: boolean;
    /**
     * (Highcharts) Rotation of the labels in degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis labels will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `labels.position3d`.
     */
    skew3d?: boolean;
    /**
     * (Highcharts) Horizontal axes only. The number of lines to spread the
     * labels over to make room or tighter labels.
     */
    staggerLines?: number;
    /**
     * (Highcharts) To show only every _n_'th label on the axis, set the step to
     * _n_. Setting the step to 2 shows every other label.
     *
     * By default, the step is calculated automatically to avoid overlap. To
     * prevent this, set it to 1\. This usually only happens on a category axis,
     * and is often a sign that you have chosen the wrong axis type.
     *
     * Read more at Axis docs => What axis should I use?
     */
    step?: number;
    /**
     * (Highcharts) CSS styles for the label. Use `whiteSpace: 'nowrap'` to
     * prevent wrapping of category labels. Use `textOverflow: 'none'` to
     * prevent ellipsis (dots).
     *
     * In styled mode, the labels are styled with the `.highcharts-axis-labels`
     * class.
     */
    style?: CSSObject;
    /**
     * (Gantt) The symbol for the collapse and expand icon in a treegrid.
     */
    symbol?: ChartParallelAxesLabelsSymbolOptions;
    /**
     * (Highcharts) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts) The x position offset of all labels relative to the tick
     * positions on the axis. Defaults to -15 for left axis, 15 for right axis.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of all labels relative to the tick
     * positions on the axis. For polar and radial axis consider the use of the
     * distance option.
     */
    y?: number;
    /**
     * (Highcharts) The Z index for the axis labels.
     */
    zIndex?: number;
}
/**
 * (Gantt) The symbol for the collapse and expand icon in a treegrid.
 */
export interface ChartParallelAxesLabelsSymbolOptions {
    height?: number;
    padding?: number;
    /**
     * (Gantt) The symbol type. Points to a definition function in the
     * `Highcharts.Renderer.symbols` collection.
     */
    type?: SymbolKeyValue;
    width?: number;
    x?: number;
    y?: number;
}
/**
 * (Highcharts) Common options for all yAxes rendered in a parallel coordinates
 * plot. This feature requires `modules/parallel-coordinates.js`.
 *
 * The default options are: (see online documentation for example)
 */
export interface ChartParallelAxesOptions {
    /**
     * (Highcharts) Accessibility options for an axis. Requires the
     * accessibility module.
     */
    accessibility?: AxisAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When using multiple axis, the ticks of two
     * or more opposite axes will automatically be aligned by adding ticks to
     * the axis or axes with the least ticks, as if `tickAmount` were specified.
     *
     * This can be prevented by setting `alignTicks` to false. If the grid lines
     * look messy, it's a good idea to hide them for the secondary axis by
     * setting `gridLineWidth` to 0.
     *
     * If `startOnTick` or `endOnTick` in an Axis options are set to false, then
     * the `alignTicks ` will be disabled for the Axis.
     *
     * Disabled for logarithmic axes.
     */
    alignTicks?: boolean;
    /**
     * (Highcharts) Whether to allow decimals in this axis' ticks. When counting
     * integers, like persons or hits on a web page, decimals should be avoided
     * in the labels.
     */
    allowDecimals?: boolean;
    /**
     * (Highcharts, Gantt) If categories are present for the xAxis, names are
     * used instead of numbers for that axis.
     *
     * Since Highcharts 3.0, categories can also be extracted by giving each
     * point a name and setting axis type to `category`. However, if you have
     * multiple series, best practice remains defining the `categories` array.
     *
     * Example: `categories: ['Apples', 'Bananas', 'Oranges']`
     */
    categories?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) The highest allowed value for
     * automatically computed axis extremes.
     */
    ceiling?: number;
    /**
     * (Highcharts) A class name that opens for styling the axis by CSS,
     * especially in Highcharts styled mode. The class name is applied to group
     * elements for the grid, axis elements and labels.
     */
    className?: string;
    /**
     * (Highcharts) Configure a crosshair that follows either the mouse pointer
     * or the hovered point.
     *
     * In styled mode, the crosshairs are styled in the `.highcharts-crosshair`,
     * `.highcharts-crosshair-thin` or `.highcharts-xaxis-category` classes.
     */
    crosshair?: (boolean|AxisCrosshairOptions);
    /**
     * (Highcharts, Highstock, Gantt) For a datetime axis, the scale will
     * automatically adjust to the appropriate unit. This member gives the
     * default string representations used for each unit. For intermediate
     * values, different units may be used, for example the `day` unit can be
     * used on midnight and `hour` unit be used for intermediate values on the
     * same axis.
     *
     * For an overview of the replacement codes, see dateFormat.
     *
     * Defaults to: (see online documentation for example)
     */
    dateTimeLabelFormats?: AxisDateTimeLabelFormatsOptions;
    /**
     * (Highcharts) Whether to force the axis to end on a tick. Use this option
     * with the `maxPadding` option to control the axis end.
     *
     * This option is always disabled, when panning type is either `y` or `xy`.
     */
    endOnTick?: boolean;
    /**
     * (Highcharts) Event handlers for the axis.
     */
    events?: ChartParallelAxesEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The lowest allowed value for automatically
     * computed axis extremes.
     */
    floor?: number;
    /**
     * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
     */
    grid?: ChartParallelAxesGridOptions;
    /**
     * (Highcharts, Highstock, Gantt) The Z index of the grid lines.
     */
    gridZIndex?: number;
    /**
     * (Highcharts, Highstock) The height of the Y axis. If it's a number, it is
     * interpreted as pixels.
     *
     * Since Highcharts 2: If it's a percentage string, it is interpreted as
     * percentages of the total plot height.
     */
    height?: (number|string);
    /**
     * (Highcharts) The axis labels show the number or category for each tick.
     *
     * Since v8.0.0: Labels are animated in categorized x-axis with updating
     * data if `tickInterval` and `step` is set to 1.
     */
    labels?: ChartParallelAxesLabelsOptions;
    /**
     * (Highcharts, Highstock) The left position as the horizontal axis. If it's
     * a number, it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the plot width, offset from plot area left.
     */
    left?: (number|string);
    /**
     * (Highcharts) The color of the line marking the axis itself.
     *
     * In styled mode, the line stroke is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineColor?: ColorType;
    /**
     * (Highcharts) The width of the line marking the axis itself.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Index of another axis that this axis is
     * linked to. When an axis is linked to a master axis, it will take the same
     * extremes as the master, but as assigned by min or max or by setExtremes.
     * It can be used to show additional info, or to ease reading the chart by
     * duplicating the scales.
     */
    linkedTo?: number;
    /**
     * (Highcharts) If there are multiple axes on the same side of the chart,
     * the pixel margin between the axes. Defaults to 0 on vertical axes, 15 on
     * horizontal axes.
     */
    margin?: number;
    /**
     * (Highcharts) The maximum value of the axis. If `null`, the max value is
     * automatically calculated.
     *
     * If the endOnTick option is true, the `max` value might be rounded up.
     *
     * If a tickAmount is set, the axis may be extended beyond the set max in
     * order to reach the given number of ticks. The same may happen in a chart
     * with multiple axes, determined by chart. alignTicks, where a `tickAmount`
     * is applied internally.
     */
    max?: (number|null);
    /**
     * (Highstock) Maximal size of a resizable axis. Could be set as a percent
     * of plot area or pixel size.
     */
    maxLength?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) Padding of the max value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the highest data value to appear on
     * the edge of the plot area. When the axis' `max` option is set or a max
     * extreme is set using `axis.setExtremes()`, the maxPadding will be
     * ignored.
     *
     * Also the `softThreshold` option takes precedence over `maxPadding`, so if
     * the data is tangent to the threshold, `maxPadding` may not apply unless
     * `softThreshold` is set to false.
     */
    maxPadding?: number;
    /**
     * (Highstock, Gantt) Maximum range which can be set using the navigator's
     * handles. Opposite of xAxis.minRange.
     */
    maxRange?: number;
    /**
     * (Highcharts) The minimum value of the axis. If `null` the min value is
     * automatically calculated.
     *
     * If the startOnTick option is true (default), the `min` value might be
     * rounded down.
     *
     * The automatically calculated minimum value is also affected by floor,
     * softMin, minPadding, minRange as well as series.threshold and
     * series.softThreshold.
     */
    min?: (number|null);
    /**
     * (Highstock) Minimal size of a resizable axis. Could be set as a percent
     * of plot area or pixel size.
     */
    minLength?: (number|string);
    /**
     * (Highcharts) Color for the minor tick marks.
     */
    minorTickColor?: ColorType;
    /**
     * (Highcharts) Specific tick interval in axis units for the minor ticks. On
     * a linear axis, if `"auto"`, the minor tick interval is calculated as a
     * fifth of the tickInterval. If `null` or `undefined`, minor ticks are not
     * shown.
     *
     * On logarithmic axes, the unit is the power of the value. For example,
     * setting the minorTickInterval to 1 puts one tick on each of 0.1, 1, 10,
     * 100 etc. Setting the minorTickInterval to 0.1 produces 9 ticks between 1
     * and 10, 10 and 100 etc.
     *
     * If user settings dictate minor ticks to become too dense, they don't make
     * sense, and will be ignored to prevent performance problems.
     */
    minorTickInterval?: (number|string|null);
    /**
     * (Highcharts) The pixel length of the minor tick marks.
     */
    minorTickLength?: number;
    /**
     * (Highcharts) The position of the minor tick marks relative to the axis
     * line. Can be one of `inside` and `outside`.
     */
    minorTickPosition?: OptionsMinorTickPositionValue;
    /**
     * (Highcharts) Enable or disable minor ticks. Unless minorTickInterval is
     * set, the tick interval is calculated as a fifth of the `tickInterval`.
     *
     * On a logarithmic axis, minor ticks are laid out based on a best guess,
     * attempting to enter approximately 5 minor ticks between each major tick.
     *
     * Prior to v6.0.0, ticks were unabled in auto layout by setting
     * `minorTickInterval` to `"auto"`.
     */
    minorTicks?: boolean;
    /**
     * (Highcharts) The pixel width of the minor tick mark.
     */
    minorTickWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Padding of the min value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the lowest data value to appear on the
     * edge of the plot area. When the axis' `min` option is set or a max
     * extreme is set using `axis.setExtremes()`, the maxPadding will be
     * ignored.
     *
     * Also the `softThreshold` option takes precedence over `minPadding`, so if
     * the data is tangent to the threshold, `minPadding` may not apply unless
     * `softThreshold` is set to false.
     */
    minPadding?: number;
    /**
     * (Highcharts) The minimum range to display on this axis. The entire axis
     * will not be allowed to span over a smaller interval than this. For
     * example, for a datetime axis the main unit is milliseconds. If minRange
     * is set to 3600000, you can't zoom in more than to one hour.
     *
     * The default minRange for the x axis is five times the smallest interval
     * between any of the data points.
     *
     * On a logarithmic axis, the unit for the minimum range is the power. So a
     * minRange of 1 means that the axis can be zoomed to 10-100, 100-1000,
     * 1000-10000 etc.
     *
     * **Note**: The `minPadding`, `maxPadding`, `startOnTick` and `endOnTick`
     * settings also affect how the extremes of the axis are computed.
     */
    minRange?: number;
    /**
     * (Highcharts) The minimum tick interval allowed in axis values. For
     * example on zooming in on an axis with daily data, this can be used to
     * prevent the axis from showing hours. Defaults to the closest distance
     * between two points on the axis.
     */
    minTickInterval?: number;
    /**
     * (Highcharts) The distance in pixels from the plot area to the axis line.
     * A positive offset moves the axis with it's line, labels and ticks away
     * from the plot area. This is typically used when two or more axes are
     * displayed on the same side of the plot. With multiple axes the offset is
     * dynamically adjusted to avoid collision, this can be overridden by
     * setting offset explicitly.
     */
    offset?: number;
    /**
     * (Highstock, Highcharts, Gantt) Whether to display the axis on the
     * opposite side of the normal. The normal is on the left side for vertical
     * axes and bottom for horizontal, so the opposite sides will be right and
     * top respectively. This is typically used with dual or multiple axes.
     */
    opposite?: boolean;
    /**
     * (Highcharts) Refers to the index in the panes array. Used for circular
     * gauges and polar charts. When the option is not set then first pane will
     * be used.
     */
    pane?: number;
    /**
     * (Highstock) The zoomed range to display when only defining one or none of
     * `min` or `max`. For example, to show the latest month, a range of one
     * month can be set.
     */
    range?: number;
    /**
     * (Highstock) Options for axis resizing. It adds a thick line between panes
     * which the user can drag in order to resize the panes.
     */
    resize?: ChartParallelAxesResizeOptions;
    /**
     * (Highcharts) Whether to reverse the axis so that the highest number is
     * closest to the origin.
     */
    reversed?: boolean;
    /**
     * (Highcharts, Highstock) If `true`, the first series in a stack will be
     * drawn on top in a positive, non-reversed Y axis. If `false`, the first
     * series is in the base of the stack.
     */
    reversedStacks?: boolean;
    /**
     * (Highcharts) Whether to show the axis line and title when the axis has no
     * data.
     */
    showEmpty?: boolean;
    /**
     * (Highcharts) Whether to show the first tick label.
     */
    showFirstLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to show the last tick label.
     * Defaults to `true` on cartesian charts, and `false` on polar charts.
     */
    showLastLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A soft maximum for the axis. If the series
     * data maximum is less than this, the axis will stay at this maximum, but
     * if the series data maximum is higher, the axis will flex to show all
     * data.
     *
     * **Note**: The series.softThreshold option takes precedence over this
     * option.
     */
    softMax?: number;
    /**
     * (Highcharts, Highstock, Gantt) A soft minimum for the axis. If the series
     * data minimum is greater than this, the axis will stay at this minimum,
     * but if the series data minimum is lower, the axis will flex to show all
     * data.
     *
     * **Note**: The series.softThreshold option takes precedence over this
     * option.
     */
    softMin?: number;
    /**
     * (Highcharts, Highstock, Gantt) For datetime axes, this decides where to
     * put the tick between weeks. 0 = Sunday, 1 = Monday.
     */
    startOfWeek?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether to force the axis to start on a
     * tick. Use this option with the `maxPadding` option to control the axis
     * start.
     *
     * This option is always disabled, when panning type is either `y` or `xy`.
     */
    startOnTick?: boolean;
    /**
     * (Gantt) For vertical axes only. Setting the static scale ensures that
     * each tick unit is translated into a fixed pixel height. For example,
     * setting the static scale to 24 results in each Y axis category taking up
     * 24 pixels, and the height of the chart adjusts. Adding or removing items
     * will make the chart resize.
     */
    staticScale?: number;
    /**
     * (Highcharts, Highstock, Gantt) The amount of ticks to draw on the axis.
     * This opens up for aligning the ticks of multiple charts or panes within a
     * chart. This option overrides the `tickPixelInterval` option.
     *
     * This option only has an effect on linear axes. Datetime, logarithmic or
     * category axes are not affected.
     */
    tickAmount?: number;
    /**
     * (Highcharts) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: ColorType;
    /**
     * (Highcharts) The interval of the tick marks in axis units. When
     * `undefined`, the tick interval is computed to approximately follow the
     * tickPixelInterval on linear and datetime axes. On categorized axes, a
     * `undefined` tickInterval will default to 1, one category. Note that
     * datetime axes are based on milliseconds, so for example an interval of
     * one day is expressed as `24 * 3600 * 1000`.
     *
     * On logarithmic axes, the tickInterval is based on powers, so a
     * tickInterval of 1 means one tick on each of 0.1, 1, 10, 100 etc. A
     * tickInterval of 2 means a tick of 0.1, 10, 1000 etc. A tickInterval of
     * 0.2 puts a tick on 0.1, 0.2, 0.4, 0.6, 0.8, 1, 2, 4, 6, 8, 10, 20, 40
     * etc.
     *
     * If the tickInterval is too dense for labels to be drawn, Highcharts may
     * remove ticks.
     *
     * If the chart has multiple axes, the alignTicks option may interfere with
     * the `tickInterval` setting.
     */
    tickInterval?: number;
    /**
     * (Highcharts) The pixel length of the main tick marks.
     */
    tickLength?: number;
    /**
     * (Highcharts, Gantt) For categorized axes only. If `on` the tick mark is
     * placed in the center of the category, if `between` the tick mark is
     * placed between categories. The default is `between` if the `tickInterval`
     * is 1, else `on`.
     */
    tickmarkPlacement?: OptionsTickmarkPlacementValue;
    /**
     * (Highcharts) If tickInterval is `null` this option sets the approximate
     * pixel interval of the tick marks. Not applicable to categorized axis.
     *
     * The tick interval is also influenced by the minTickInterval option, that,
     * by default prevents ticks from being denser than the data points.
     */
    tickPixelInterval?: number;
    /**
     * (Highcharts) The position of the major tick marks relative to the axis
     * line. Can be one of `inside` and `outside`.
     */
    tickPosition?: OptionsTickPositionValue;
    /**
     * (Highcharts) A callback function returning array defining where the ticks
     * are laid out on the axis. This overrides the default behaviour of
     * tickPixelInterval and tickInterval. The automatic tick positions are
     * accessible through `this.tickPositions` and can be modified by the
     * callback.
     */
    tickPositioner?: AxisTickPositionerCallbackFunction;
    /**
     * (Highcharts) An array defining where the ticks are laid out on the axis.
     * This overrides the default behaviour of tickPixelInterval and
     * tickInterval.
     */
    tickPositions?: Array<number>;
    /**
     * (Highcharts, Highstock, Gantt) The pixel width of the major tick marks.
     */
    tickWidth?: number;
    /**
     * (Highcharts) Titles for yAxes are taken from xAxis.categories. All
     * options for `xAxis.labels` applies to parallel coordinates titles. For
     * example, to style categories, use xAxis.labels.style.
     */
    title?: ChartParallelAxesTitleOptions;
    /**
     * (Highcharts) Parallel coordinates only. Format that will be used for
     * point.y and available in tooltip.pointFormat as `{point.formattedValue}`.
     * If not set, `{point.formattedValue}` will use other options, in this
     * order:
     *
     * 1. yAxis.labels.format will be used if set
     *
     * 2. If yAxis is a category, then category name will be displayed
     *
     * 3. If yAxis is a datetime, then value will use the same format as yAxis
     * labels
     *
     * 4. If yAxis is linear/logarithmic type, then simple value will be used
     */
    tooltipValueFormat?: string;
    /**
     * (Highcharts, Highstock) The top position of the Y axis. If it's a number,
     * it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts 2: If it's a percentage string, it is interpreted as
     * percentages of the plot height, offset from plot area top.
     */
    top?: (number|string);
    /**
     * (Highcharts, Gantt) The type of axis. Can be one of `linear`,
     * `logarithmic`, `datetime`, `category` or `treegrid`. Defaults to
     * `treegrid` for Gantt charts, `linear` for other chart types.
     *
     * In a datetime axis, the numbers are given in milliseconds, and tick marks
     * are placed on appropriate values, like full hours or days. In a category
     * or treegrid axis, the point names of the chart's series are used for
     * categories, if a categories array is not defined.
     */
    type?: AxisTypeValue;
    /**
     * (Highcharts, Gantt) Applies only when the axis `type` is `category`. When
     * `uniqueNames` is true, points are placed on the X axis according to their
     * names. If the same point name is repeated in the same or another series,
     * the point is placed on the same X position as other points of the same
     * name. When `uniqueNames` is false, the points are laid out in increasing
     * X positions regardless of their names, and the X axis category will take
     * the name of the last point in each position.
     */
    uniqueNames?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Datetime axis only. An array determining
     * what time intervals the ticks are allowed to fall on. Each array item is
     * an array where the first value is the time unit and the second value
     * another array of allowed multiples.
     *
     * Defaults to: (see online documentation for example)
     */
    units?: Array<[string, (Array<number>|null)]>;
    /**
     * (Highcharts, Highstock, Gantt) Whether axis, including axis title, line,
     * ticks and labels, should be visible.
     */
    visible?: boolean;
    /**
     * (Highcharts, Highstock) The width as the horizontal axis. If it's a
     * number, it is interpreted as pixels.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the total plot width.
     */
    width?: (number|string);
    /**
     * (Highcharts) Whether to zoom axis. If `chart.zoomType` is set, the option
     * allows to disable zooming on an individual axis.
     */
    zoomEnabled?: boolean;
}
/**
 * (Highstock) Contains two arrays of axes that are controlled by control line
 * of the axis.
 */
export interface ChartParallelAxesResizeControlledAxisOptions {
    /**
     * (Highstock) Array of axes that should move out of the way of resizing
     * being done for the current axis. If not set, the next axis will be used.
     */
    next?: Array<(number|string)>;
    /**
     * (Highstock) Array of axes that should move with the current axis while
     * resizing.
     */
    prev?: Array<(number|string)>;
}
/**
 * (Highstock) Options for axis resizing. It adds a thick line between panes
 * which the user can drag in order to resize the panes.
 */
export interface ChartParallelAxesResizeOptions {
    /**
     * (Highstock) Contains two arrays of axes that are controlled by control
     * line of the axis.
     */
    controlledAxis?: ChartParallelAxesResizeControlledAxisOptions;
    /**
     * (Highstock) Cursor style for the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     */
    cursor?: string;
    /**
     * (Highstock) Enable or disable resize by drag for the axis.
     */
    enabled?: boolean;
    /**
     * (Highstock) Color of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Dash style of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     */
    lineDashStyle?: string;
    /**
     * (Highstock) Width of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     */
    lineWidth?: number;
    /**
     * (Highstock) Horizontal offset of the control line.
     */
    x?: number;
    /**
     * (Highstock) Vertical offset of the control line.
     */
    y?: number;
}
/**
 * (Highcharts) Titles for yAxes are taken from xAxis.categories. All options
 * for `xAxis.labels` applies to parallel coordinates titles. For example, to
 * style categories, use xAxis.labels.style.
 */
export interface ChartParallelAxesTitleOptions {
    reserveSpace?: boolean;
    text?: string;
    /**
     * (Highcharts) Alignment of the text, can be `"left"`, `"right"` or
     * `"center"`. Default alignment depends on the title.align:
     *
     * Horizontal axes:
     *
     * - for `align` = `"low"`, `textAlign` is set to `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"`, `textAlign` is set to `right`
     *
     * Vertical axes:
     *
     * - for `align` = `"low"` and `opposite` = `true`, `textAlign` is set to
     * `right`
     *
     * - for `align` = `"low"` and `opposite` = `false`, `textAlign` is set to
     * `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"` and `opposite` = `true` `textAlign` is set to
     * `left`
     *
     * - for `align` = `"high"` and `opposite` = `false` `textAlign` is set to
     * `right`
     */
    textAlign?: AlignValue;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The button that appears after a
 * selection zoom, allowing the user to reset zoom.
 */
export interface ChartResetZoomButtonOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The position of the button.
     */
    position?: (AlignObject|ChartResetZoomButtonPositionOptions);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) What frame the button placement
     * should be related to. Can be either `plotBox` or `spacingBox`.
     */
    relativeTo?: ButtonRelativeToValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A collection of attributes for
     * the button. The object takes SVG attributes like `fill`, `stroke`,
     * `stroke-width` or `r`, the border radius. The theme also supports
     * `style`, a collection of CSS properties for the text. Equivalent
     * attributes for the hover state are given in `theme.states.hover`.
     */
    theme?: SVGAttributes;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The position of the button.
 */
export interface ChartResetZoomButtonPositionOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The horizontal alignment of the
     * button.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * button.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The horizontal offset of the
     * button.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical offset of the
     * button.
     */
    y?: number;
}
/**
 * (Highcharts, Gantt) Options for a scrollable plot area. This feature provides
 * a minimum size for the plot area of the chart. If the size gets smaller than
 * this, typically on mobile devices, a native browser scrollbar is presented.
 * This scrollbar provides smooth scrolling for the contents of the plot area,
 * whereas the title, legend and unaffected axes are fixed.
 *
 * Since v7.1.2, a scrollable plot area can be defined for either horizontal or
 * vertical scrolling, depending on whether the `minWidth` or `minHeight` option
 * is set.
 */
export interface ChartScrollablePlotAreaOptions {
    /**
     * (Highcharts, Gantt) The minimum height for the plot area. If it gets
     * smaller than this, the plot area will become scrollable.
     */
    minHeight?: number;
    /**
     * (Highcharts, Gantt) The minimum width for the plot area. If it gets
     * smaller than this, the plot area will become scrollable.
     */
    minWidth?: number;
    /**
     * (Highcharts, Gantt) The opacity of mask applied on one of the sides of
     * the plot area.
     */
    opacity?: number;
    /**
     * (Highcharts, Gantt) The initial scrolling position of the scrollable plot
     * area. Ranges from 0 to 1, where 0 aligns the plot area to the left and 1
     * aligns it to the right. Typically we would use 1 if the chart has right
     * aligned Y axes.
     */
    scrollPositionX?: number;
    /**
     * (Highcharts, Gantt) The initial scrolling position of the scrollable plot
     * area. Ranges from 0 to 1, where 0 aligns the plot area to the top and 1
     * aligns it to the bottom.
     */
    scrollPositionY?: number;
}
/**
 * Axis context of the selection.
 */
export interface ChartSelectionAxisContextObject {
    /**
     * The selected Axis.
     */
    axis: Axis;
    /**
     * The maximum axis value, either automatic or set manually.
     */
    max: number;
    /**
     * The minimum axis value, either automatic or set manually.
     */
    min: number;
}
/**
 * The primary axes are `xAxis[0]` and `yAxis[0]`. Remember the unit of a
 * datetime axis is milliseconds since 1970-01-01 00:00:00.
 */
export interface ChartSelectionContextObject extends Event {
    /**
     * Arrays containing the axes of each dimension and each axis' min and max
     * values.
     */
    xAxis: Array<ChartSelectionAxisContextObject>;
    /**
     * Arrays containing the axes of each dimension and each axis' min and max
     * values.
     */
    yAxis: Array<ChartSelectionAxisContextObject>;
}
/**
 * Interface description for a class.
 */
export interface Class<T> extends Function {
    /**
     * Class costructor.
     *
     * @param args
     *        Constructor arguments.
     *
     * @return Class instance.
     */
    new(...args: Array<any>): T;
}
/**
 * (Gantt) An object defining mouse events for the plot line. Supported
 * properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface ColorAxisCurrentDateIndicatorEventsOptions {
    /**
     * (Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse out event on the corner of a plot band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Gantt) Text labels for the plot bands
 */
export interface ColorAxisCurrentDateIndicatorLabelOptions {
    /**
     * (Gantt) Horizontal alignment of the label. Can be one of "left", "center"
     * or "right".
     */
    align?: AlignValue;
    /**
     * (Gantt) Format of the label. This options is passed as the fist argument
     * to dateFormat function.
     */
    format?: string;
    /**
     * (Gantt) Callback JavaScript function to format the label. Useful
     * properties like the value of plot line or the range of plot band (`from`
     * & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Rotation of the text label in degrees. Defaults to 0 for
     * horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Gantt) The text itself. A subset of HTML is supported.
     */
    text?: string;
    /**
     * (Gantt) The text alignment for the label. While `align` determines where
     * the texts anchor point is placed within the plot band, `textAlign`
     * determines how the text is aligned against its anchor point. Possible
     * values are "left", "center" and "right". Defaults to the same as the
     * `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Gantt) Vertical alignment of the label relative to the plot line. Can be
     * one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Gantt) Horizontal position relative the alignment. Default varies by
     * orientation.
     */
    x?: number;
    /**
     * (Gantt) Vertical position of the text baseline relative to the alignment.
     * Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps) An array of data classes or ranges for the
 * choropleth map. If none given, the color axis is scalar and values are
 * distributed as a gradient between the minimum and maximum colors.
 */
export interface ColorAxisDataClassesOptions {
    /**
     * (Highcharts, Highstock, Highmaps) The color of each data class. If not
     * set, the color is pulled from the global or chart-specific colors array.
     * In styled mode, this option is ignored. Instead, use colors defined in
     * CSS.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) The start of the value range that the
     * data class represents, relating to the point value.
     *
     * The range of each `dataClass` is closed in both ends, but can be
     * overridden by the next `dataClass`.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The name of the data class as it
     * appears in the legend. If no name is given, it is automatically created
     * based on the `from` and `to` values. For full programmatic control,
     * legend.labelFormatter can be used. In the formatter, `this.from` and
     * `this.to` can be accessed.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Highmaps) The end of the value range that the
     * data class represents, relating to the point value.
     *
     * The range of each `dataClass` is closed in both ends, but can be
     * overridden by the next `dataClass`.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Highmaps) Event handlers for the axis.
 */
export interface ColorAxisEventsOptions {
    /**
     * (Highcharts, Highstock, Highmaps) As opposed to the `setExtremes` event,
     * this event fires after the final min and max values are computed and
     * corrected for `minRange`.
     *
     * Fires when the minimum and maximum is set for the axis, either by calling
     * the `.setExtremes()` method or by selecting an area in the chart. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in axis
     * values. The actual data extremes are found in `event.dataMin` and
     * `event.dataMax`.
     */
    afterSetExtremes?: AxisSetExtremesEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps) Fires when the legend item belonging to
     * the colorAxis is clicked. One parameter, `event`, is passed to the
     * function.
     */
    legendItemClick?: Function;
    /**
     * (Highcharts, Highstock, Highmaps) Fires when the minimum and maximum is
     * set for the axis, either by calling the `.setExtremes()` method or by
     * selecting an area in the chart. One parameter, `event`, is passed to the
     * function, containing common event information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in data
     * values. When an axis is zoomed all the way out from the "Reset zoom"
     * button, `event.min` and `event.max` are null, and the new extremes are
     * set based on `this.dataMin` and `this.dataMax`.
     */
    setExtremes?: AxisSetExtremesEventCallbackFunction;
}
/**
 * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
 */
export interface ColorAxisGridOptions {
    /**
     * (Gantt) Set border color for the label grid lines.
     */
    borderColor?: ColorString;
    /**
     * (Gantt) Set border width of the label grid lines.
     */
    borderWidth?: number;
    /**
     * (Gantt) Set cell height for grid axis labels. By default this is
     * calculated from font size. This option only applies to horizontal axes.
     */
    cellHeight?: number;
    /**
     * (Gantt) Set specific options for each column (or row for horizontal axes)
     * in the grid. Each extra column/row is its own axis, and the axis options
     * can be set here.
     */
    columns?: Array<XAxisOptions>;
    /**
     * (Gantt) Enable grid on the axis labels. Defaults to true for Gantt
     * charts.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock, Highmaps) The axis labels show the number for each
 * tick.
 *
 * For more live examples on label options, see xAxis.labels in the Highcharts
 * API.
 */
export interface ColorAxisLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps) What part of the string the given
     * position is anchored to. If `left`, the left side of the string is at the
     * axis position. Can be one of `"left"`, `"center"` or `"right"`. Defaults
     * to an intelligent guess based on which side of the chart the axis is on
     * and the rotation of the label.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) For horizontal axes, the allowed degrees
     * of label rotation to prevent overlapping labels. If there is enough
     * space, labels are not rotated. As the chart gets narrower, it will start
     * rotating the labels -45 degrees, then remove every second label and try
     * again with rotations 0 and -45 etc. Set it to `false` to disable
     * rotation, which will cause the labels to word-wrap if possible.
     */
    autoRotation?: (false|Array<number>);
    /**
     * (Highcharts, Gantt) When each category width is more than this many
     * pixels, we don't apply auto rotation. Instead, we lay out the axis label
     * with word wrap. A lower limit makes sense when the label contains
     * multiple short words that don't extend the available horizontal space for
     * each label.
     */
    autoRotationLimit?: number;
    /**
     * (Highcharts, Gantt) Polar charts only. The label's pixel distance from
     * the perimeter of the plot area.
     */
    distance?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Enable or disable the axis labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) A format string for the axis label.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps) Callback JavaScript function to format
     * the label. The value is given by `this.value`. Additional properties for
     * `this` are `axis`, `chart`, `isFirst` and `isLast`. The value of the
     * default label formatter can be retrieved by calling
     * `this.axis.defaultLabelFormatter.call(this)` within the function.
     *
     * Defaults to: (see online documentation for example)
     */
    formatter?: AxisLabelsFormatterCallbackFunction;
    /**
     * (Gantt) The number of pixels to indent the labels per level in a treegrid
     * axis.
     */
    indentation?: number;
    /**
     * (Highcharts, Highstock, Highmaps) How to handle overflowing labels on
     * horizontal color axis. If set to `"allow"`, it will not be aligned at
     * all. By default it `"justify"` labels inside the chart area. If there is
     * room to move it, it will be aligned to the edge, else it will be removed.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Gantt) The pixel padding for axis labels, to ensure white
     * space between them.
     */
    padding?: number;
    /**
     * (Highcharts) Defines how the labels are be repositioned according to the
     * 3D chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     */
    position3d?: OptionsPosition3dValue;
    /**
     * (Highcharts, Gantt) Whether to reserve space for the labels. By default,
     * space is reserved for the labels in these cases:
     *
     * * On all horizontal axes.
     *
     * * On vertical axes if `label.align` is `right` on a left-side axis or
     * `left` on a right-side axis.
     *
     * * On vertical axes if `label.align` is `center`.
     *
     * This can be turned off when for example the labels are rendered inside
     * the plot area instead of outside.
     */
    reserveSpace?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) Rotation of the labels in degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis labels will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `labels.position3d`.
     */
    skew3d?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) Horizontal axes only. The number of
     * lines to spread the labels over to make room or tighter labels.
     */
    staggerLines?: number;
    /**
     * (Highcharts, Highstock, Highmaps) To show only every _n_'th label on the
     * axis, set the step to _n_. Setting the step to 2 shows every other label.
     *
     * By default, the step is calculated automatically to avoid overlap. To
     * prevent this, set it to 1\. This usually only happens on a category axis,
     * and is often a sign that you have chosen the wrong axis type.
     *
     * Read more at Axis docs => What axis should I use?
     */
    step?: number;
    /**
     * (Highcharts, Highstock, Highmaps) CSS styles for the label. Use
     * `whiteSpace: 'nowrap'` to prevent wrapping of category labels. Use
     * `textOverflow: 'none'` to prevent ellipsis (dots).
     *
     * In styled mode, the labels are styled with the `.highcharts-axis-labels`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to use HTML to render the
     * labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) The x position offset of all labels
     * relative to the tick positions on the axis.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The y position offset of all labels
     * relative to the tick positions on the axis. The default makes it adapt to
     * the font size of the bottom axis.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The Z index for the axis labels.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Highmaps) A color axis for series. Visually, the
 * color axis will appear as a gradient or as separate items inside the legend,
 * depending on whether the axis is scalar or based on data classes.
 *
 * For supported color formats, see the docs article about colors.
 *
 * A scalar color axis is represented by a gradient. The colors either range
 * between the minColor and the maxColor, or for more fine grained control the
 * colors can be defined in stops. Often times, the color axis needs to be
 * adjusted to get the right color spread for the data. In addition to stops,
 * consider using a logarithmic axis type, or setting min and max to avoid the
 * colors being determined by outliers.
 *
 * When dataClasses are used, the ranges are subdivided into separate classes
 * like categories based on their values. This can be used for ranges between
 * two values, but also for a true category. However, when your data is
 * categorized, it may be as convenient to add each category to a separate
 * series.
 *
 * Color axis does not work with: `sankey`, `sunburst`, `dependencywheel`,
 * `networkgraph`, `wordcloud`, `venn`, `gauge` and `solidgauge` series types.
 *
 * Since v7.2.0 `colorAxis` can also be an array of options objects.
 *
 * See the Axis object for programmatic access to the axis.
 */
export interface ColorAxisOptions {
    /**
     * (Highcharts, Highstock, Highmaps) Accessibility options for an axis.
     * Requires the accessibility module.
     */
    accessibility?: AxisAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to allow decimals on the color
     * axis.
     */
    allowDecimals?: boolean;
    /**
     * (Highcharts) In a polar chart, this is the angle of the Y axis in
     * degrees, where 0 is up and 90 is right. The angle determines the position
     * of the axis line and the labels, though the coordinate system is
     * unaffected. Since v8.0.0 this option is also applicable for X axis
     * (inverted polar).
     */
    angle?: number;
    /**
     * (Highcharts, Highstock, Gantt) The highest allowed value for
     * automatically computed axis extremes.
     */
    ceiling?: number;
    /**
     * (Highcharts, Highstock, Highmaps) A class name that opens for styling the
     * axis by CSS, especially in Highcharts styled mode. The class name is
     * applied to group elements for the grid, axis elements and labels.
     */
    className?: string;
    /**
     * (Gantt) Show an indicator on the axis for the current date and time. Can
     * be a boolean or a configuration object similar to xAxis.plotLines.
     */
    currentDateIndicator?: (boolean|AxisCurrentDateIndicatorOptions);
    /**
     * (Highcharts, Highstock, Highmaps) Determines how to set each data class'
     * color if no individual color is set. The default value, `tween`, computes
     * intermediate colors between `minColor` and `maxColor`. The other possible
     * value, `category`, pulls colors from the global or chart specific colors
     * array.
     */
    dataClassColor?: OptionsDataClassColorValue;
    /**
     * (Highcharts, Highstock, Highmaps) An array of data classes or ranges for
     * the choropleth map. If none given, the color axis is scalar and values
     * are distributed as a gradient between the minimum and maximum colors.
     */
    dataClasses?: Array<ColorAxisDataClassesOptions>;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to force the axis to end on a
     * tick. Use this option with the maxPadding option to control the axis end.
     */
    endOnTick?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) Event handlers for the axis.
     */
    events?: ColorAxisEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The lowest allowed value for automatically
     * computed axis extremes.
     */
    floor?: number;
    /**
     * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
     */
    grid?: ColorAxisGridOptions;
    /**
     * (Highcharts, Highstock, Highmaps) Color of the grid lines extending from
     * the axis across the gradient.
     */
    gridLineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) The dash or dot style of the grid
     * lines. For possible values, see this demonstration.
     */
    gridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Polar charts only. Whether the grid lines should draw as a
     * polygon with straight lines between categories, or as circles. Can be
     * either `circle` or `polygon`. Since v8.0.0 this option is also applicable
     * for X axis (inverted polar).
     */
    gridLineInterpolation?: OptionsGridLineInterpolationValue;
    /**
     * (Highcharts, Highstock, Highmaps) The width of the grid lines extending
     * from the axis across the gradient of a scalar color axis.
     */
    gridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Z index of the grid lines.
     */
    gridZIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) An id for the axis. This can be used
     * after render time to get a pointer to the axis object through
     * `chart.get()`.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Highmaps) The axis labels show the number for
     * each tick.
     *
     * For more live examples on label options, see xAxis.labels in the
     * Highcharts API.
     */
    labels?: ColorAxisLabelsOptions;
    /**
     * (Highcharts, Highstock, Highmaps) The layout of the color axis. Can be
     * `'horizontal'` or `'vertical'`. If none given, the color axis has the
     * same layout as the legend.
     */
    layout?: (string|undefined);
    /**
     * (Highcharts, Highstock, Highmaps) The color of the line marking the axis
     * itself.
     *
     * In styled mode, the line stroke is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps) If there are multiple axes on the same
     * side of the chart, the pixel margin between the axes. Defaults to 0 on
     * vertical axes, 15 on horizontal axes.
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The triangular marker on a scalar color
     * axis that points to the value of the hovered area. To disable the marker,
     * set `marker: null`.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps) The maximum value of the axis in terms
     * of map point values. If `null`, the max value is automatically
     * calculated. If the `endOnTick` option is true, the max value might be
     * rounded up.
     */
    max?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The color to represent the maximum of
     * the color axis. Unless dataClasses or stops are set, the gradient ends at
     * this value.
     *
     * If dataClasses are set, the color is based on minColor and maxColor
     * unless a color is set for each data class, or the dataClassColor is set.
     */
    maxColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) Padding of the max value relative to
     * the length of the axis. A padding of 0.05 will make a 100px axis 5px
     * longer.
     */
    maxPadding?: number;
    /**
     * (Highstock, Gantt) Maximum range which can be set using the navigator's
     * handles. Opposite of xAxis.minRange.
     */
    maxRange?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The minimum value of the axis in terms
     * of map point values. If `null`, the min value is automatically
     * calculated. If the `startOnTick` option is true, the min value might be
     * rounded down.
     */
    min?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The color to represent the minimum of
     * the color axis. Unless dataClasses or stops are set, the gradient starts
     * at this value.
     *
     * If dataClasses are set, the color is based on minColor and maxColor
     * unless a color is set for each data class, or the dataClassColor is set.
     */
    minColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) Color of the minor, secondary grid
     * lines.
     *
     * In styled mode, the stroke width is given in the
     * `.highcharts-minor-grid-line` class.
     */
    minorGridLineColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps) The dash or dot style of the minor grid
     * lines. For possible values, see this demonstration.
     */
    minorGridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Highmaps) Width of the minor, secondary grid
     * lines.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    minorGridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Color for the minor tick marks.
     */
    minorTickColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps) Specific tick interval in axis units
     * for the minor ticks. On a linear axis, if `"auto"`, the minor tick
     * interval is calculated as a fifth of the tickInterval. If `null` or
     * `undefined`, minor ticks are not shown.
     *
     * On logarithmic axes, the unit is the power of the value. For example,
     * setting the minorTickInterval to 1 puts one tick on each of 0.1, 1, 10,
     * 100 etc. Setting the minorTickInterval to 0.1 produces 9 ticks between 1
     * and 10, 10 and 100 etc.
     *
     * If user settings dictate minor ticks to become too dense, they don't make
     * sense, and will be ignored to prevent performance problems.
     */
    minorTickInterval?: (number|string|null);
    /**
     * (Highcharts, Highstock, Highmaps) The pixel length of the minor tick
     * marks.
     */
    minorTickLength?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The position of the minor tick marks
     * relative to the axis line. Can be one of `inside` and `outside`.
     */
    minorTickPosition?: OptionsMinorTickPositionValue;
    /**
     * (Highcharts, Highstock, Highmaps) Enable or disable minor ticks. Unless
     * minorTickInterval is set, the tick interval is calculated as a fifth of
     * the `tickInterval`.
     *
     * On a logarithmic axis, minor ticks are laid out based on a best guess,
     * attempting to enter approximately 5 minor ticks between each major tick.
     *
     * Prior to v6.0.0, ticks were unabled in auto layout by setting
     * `minorTickInterval` to `"auto"`.
     */
    minorTicks?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) The pixel width of the minor tick mark.
     */
    minorTickWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Padding of the min value relative to
     * the length of the axis. A padding of 0.05 will make a 100px axis 5px
     * longer.
     */
    minPadding?: number;
    /**
     * (Highstock) In an ordinal axis, the points are equally spaced in the
     * chart regardless of the actual time or x distance between them. This
     * means that missing data periods (e.g. nights or weekends for a stock
     * chart) will not take up space in the chart. Having `ordinal: false` will
     * show any gaps created by the `gapSize` setting proportionate to their
     * duration.
     *
     * In stock charts the X axis is ordinal by default, unless the boost module
     * is used and at least one of the series' data length exceeds the
     * boostThreshold.
     */
    ordinal?: boolean;
    /**
     * (Highstock) Additional range on the right side of the xAxis. Works
     * similar to `xAxis.maxPadding`, but value is set in milliseconds. Can be
     * set for both main `xAxis` and the navigator's `xAxis`.
     */
    overscroll?: number;
    /**
     * (Highstock) The zoomed range to display when only defining one or none of
     * `min` or `max`. For example, to show the latest month, a range of one
     * month can be set.
     */
    range?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to reverse the axis so that the
     * highest number is closest to the origin. Defaults to `false` in a
     * horizontal legend and `true` in a vertical legend, where the smallest
     * value starts on top.
     */
    reversed?: boolean;
    /**
     * (Highstock) An optional scrollbar to display on the X axis in response to
     * limiting the minimum and maximum of the axis values.
     *
     * In styled mode, all the presentational options for the scrollbar are
     * replaced by the classes `.highcharts-scrollbar-thumb`,
     * `.highcharts-scrollbar-arrow`, `.highcharts-scrollbar-button`,
     * `.highcharts-scrollbar-rifles` and `.highcharts-scrollbar-track`.
     */
    scrollbar?: ColorAxisScrollbarOptions;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to show the first tick label.
     */
    showFirstLabel?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to display the colorAxis in the
     * legend.
     */
    showInLegend?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to show the last tick label.
     * Defaults to `true` on cartesian charts, and `false` on polar charts.
     */
    showLastLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A soft maximum for the axis. If the series
     * data maximum is less than this, the axis will stay at this maximum, but
     * if the series data maximum is higher, the axis will flex to show all
     * data.
     */
    softMax?: number;
    /**
     * (Highcharts, Highstock, Gantt) A soft minimum for the axis. If the series
     * data minimum is greater than this, the axis will stay at this minimum,
     * but if the series data minimum is lower, the axis will flex to show all
     * data.
     */
    softMin?: number;
    /**
     * (Highcharts, Highstock, Gantt) For datetime axes, this decides where to
     * put the tick between weeks. 0 = Sunday, 1 = Monday.
     */
    startOfWeek?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to force the axis to start on a
     * tick. Use this option with the `maxPadding` option to control the axis
     * start.
     */
    startOnTick?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) Color stops for the gradient of a
     * scalar color axis. Use this in cases where a linear gradient between a
     * `minColor` and `maxColor` is not sufficient. The stops is an array of
     * tuples, where the first item is a float between 0 and 1 assigning the
     * relative position in the gradient, and the second item is the color.
     */
    stops?: Array<[number, ColorString]>;
    /**
     * (Highcharts, Highstock, Gantt) The amount of ticks to draw on the axis.
     * This opens up for aligning the ticks of multiple charts or panes within a
     * chart. This option overrides the `tickPixelInterval` option.
     *
     * This option only has an effect on linear axes. Datetime, logarithmic or
     * category axes are not affected.
     */
    tickAmount?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps) The interval of the tick marks in axis
     * units. When `null`, the tick interval is computed to approximately follow
     * the `tickPixelInterval`.
     */
    tickInterval?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The pixel length of the main tick marks
     * on the color axis.
     */
    tickLength?: number;
    /**
     * (Highcharts, Gantt) For categorized axes only. If `on` the tick mark is
     * placed in the center of the category, if `between` the tick mark is
     * placed between categories. The default is `between` if the `tickInterval`
     * is 1, else `on`.
     */
    tickmarkPlacement?: OptionsTickmarkPlacementValue;
    /**
     * (Highcharts, Highstock, Highmaps) If tickInterval is `null` this option
     * sets the approximate pixel interval of the tick marks.
     */
    tickPixelInterval?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The position of the major tick marks
     * relative to the axis line. Can be one of `inside` and `outside`.
     */
    tickPosition?: OptionsTickPositionValue;
    /**
     * (Highcharts, Highstock, Highmaps) A callback function returning array
     * defining where the ticks are laid out on the axis. This overrides the
     * default behaviour of tickPixelInterval and tickInterval. The automatic
     * tick positions are accessible through `this.tickPositions` and can be
     * modified by the callback.
     */
    tickPositioner?: AxisTickPositionerCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps) An array defining where the ticks are
     * laid out on the axis. This overrides the default behaviour of
     * tickPixelInterval and tickInterval.
     */
    tickPositions?: Array<number>;
    /**
     * (Highcharts, Highstock, Highmaps) The pixel width of the major tick
     * marks. Defaults to 0 on category axes, otherwise 1.
     *
     * In styled mode, the stroke width is given in the `.highcharts-tick`
     * class, but in order for the element to be generated on category axes, the
     * option must be explicitly set to 1.
     */
    tickWidth?: (number|undefined);
    /**
     * (Highcharts, Highstock, Highmaps) The type of interpolation to use for
     * the color axis. Can be `linear` or `logarithmic`.
     */
    type?: ColorAxisTypeValue;
    /**
     * (Highcharts, Gantt) Applies only when the axis `type` is `category`. When
     * `uniqueNames` is true, points are placed on the X axis according to their
     * names. If the same point name is repeated in the same or another series,
     * the point is placed on the same X position as other points of the same
     * name. When `uniqueNames` is false, the points are laid out in increasing
     * X positions regardless of their names, and the X axis category will take
     * the name of the last point in each position.
     */
    uniqueNames?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Datetime axis only. An array determining
     * what time intervals the ticks are allowed to fall on. Each array item is
     * an array where the first value is the time unit and the second value
     * another array of allowed multiples.
     *
     * Defaults to: (see online documentation for example)
     */
    units?: Array<[string, (Array<number>|null)]>;
    /**
     * (Highcharts, Highstock, Gantt) Whether axis, including axis title, line,
     * ticks and labels, should be visible.
     */
    visible?: boolean;
}
/**
 * (Highstock) An optional scrollbar to display on the X axis in response to
 * limiting the minimum and maximum of the axis values.
 *
 * In styled mode, all the presentational options for the scrollbar are replaced
 * by the classes `.highcharts-scrollbar-thumb`, `.highcharts-scrollbar-arrow`,
 * `.highcharts-scrollbar-button`, `.highcharts-scrollbar-rifles` and
 * `.highcharts-scrollbar-track`.
 */
export interface ColorAxisScrollbarOptions {
    /**
     * (Highstock) The background color of the scrollbar itself.
     */
    barBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the scrollbar's border.
     */
    barBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border rounding radius of the bar.
     */
    barBorderRadius?: number;
    /**
     * (Highstock) The width of the bar's border.
     */
    barBorderWidth?: number;
    /**
     * (Highstock) The color of the small arrow inside the scrollbar buttons.
     */
    buttonArrowColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of scrollbar buttons.
     */
    buttonBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the border of the scrollbar buttons.
     */
    buttonBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The corner radius of the scrollbar buttons.
     */
    buttonBorderRadius?: number;
    /**
     * (Highstock) The border width of the scrollbar buttons.
     */
    buttonBorderWidth?: number;
    /**
     * (Highstock) Enable or disable the scrollbar.
     */
    enabled?: boolean;
    /**
     * (Highstock) The height of the scrollbar. The height also applies to the
     * width of the scroll arrows so that they are always squares. Defaults to
     * 20 for touch devices and 14 for mouse devices.
     */
    height?: number;
    /**
     * (Highstock) Whether to redraw the main chart as the scrollbar or the
     * navigator zoomed window is moved. Defaults to `true` for modern browsers
     * and `false` for legacy IE browsers as well as mobile devices.
     */
    liveRedraw?: boolean;
    /**
     * (Highstock) The margin between the scrollbar and its axis when the
     * scrollbar is applied directly to an axis.
     */
    margin?: number;
    /**
     * (Highstock) The minimum width of the scrollbar.
     */
    minWidth?: number;
    /**
     * (Highstock) The color of the small rifles in the middle of the scrollbar.
     */
    rifleColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Whether to show or hide the scrollbar when the scrolled
     * content is zoomed out to it full extent.
     */
    showFull?: boolean;
    /**
     * (Highstock) The color of the track background.
     */
    trackBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the border of the scrollbar track.
     */
    trackBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The corner radius of the border of the scrollbar track.
     */
    trackBorderRadius?: number;
    /**
     * (Highstock) The width of the border of the scrollbar track.
     */
    trackBorderWidth?: number;
    /**
     * (Highstock) The z index of the scrollbar group.
     */
    zIndex?: number;
}
export interface ConnectorsAnimationOptionsObject {
    reversed?: boolean;
}
/**
 * (Gantt) Marker options specific to the end markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface ConnectorsEndMarkerOptions {
    /**
     * (Gantt) Horizontal alignment of the markers relative to the points.
     */
    align?: (string|AlignValue);
    /**
     * (Gantt) Set the color of the connector markers. By default this is the
     * same as the connector color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Gantt) Enable markers for the connectors.
     */
    enabled?: boolean;
    /**
     * (Gantt) Set the height of the connector markers. If not supplied, this is
     * inferred from the marker radius.
     */
    height?: number;
    /**
     * (Gantt) Whether or not to draw the markers inside the points.
     */
    inside?: boolean;
    /**
     * (Gantt) Set the line/border color of the connector markers. By default
     * this is the same as the marker color.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) Set the line/border width of the pathfinder markers.
     */
    lineWidth?: number;
    /**
     * (Gantt) Set the radius of the connector markers. The default is
     * automatically computed based on the algorithmMargin setting.
     *
     * Setting marker.width and marker.height will override this setting.
     */
    radius?: number;
    /**
     * (Gantt) Set the symbol of the connector end markers.
     */
    symbol?: string;
    /**
     * (Gantt) Vertical alignment of the markers relative to the points.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Gantt) Set the width of the connector markers. If not supplied, this is
     * inferred from the marker radius.
     */
    width?: number;
}
/**
 * (Gantt) Marker options for this chart's Pathfinder connectors. Note that this
 * option is overridden by the `startMarker` and `endMarker` options.
 */
export interface ConnectorsMarkerOptions {
    /**
     * (Gantt) Horizontal alignment of the markers relative to the points.
     */
    align?: AlignValue;
    /**
     * (Gantt) Set the color of the connector markers. By default this is the
     * same as the connector color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Gantt) Enable markers for the connectors.
     */
    enabled?: boolean;
    /**
     * (Gantt) Set the height of the connector markers. If not supplied, this is
     * inferred from the marker radius.
     */
    height?: number;
    /**
     * (Gantt) Whether or not to draw the markers inside the points.
     */
    inside?: boolean;
    /**
     * (Gantt) Set the line/border color of the connector markers. By default
     * this is the same as the marker color.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) Set the line/border width of the pathfinder markers.
     */
    lineWidth?: number;
    /**
     * (Gantt) Set the radius of the connector markers. The default is
     * automatically computed based on the algorithmMargin setting.
     *
     * Setting marker.width and marker.height will override this setting.
     */
    radius?: number;
    /**
     * (Gantt) Vertical alignment of the markers relative to the points.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Gantt) Set the width of the connector markers. If not supplied, this is
     * inferred from the marker radius.
     */
    width?: number;
}
/**
 * (Gantt) The Pathfinder module allows you to define connections between any
 * two points, represented as lines - optionally with markers for the start
 * and/or end points. Multiple algorithms are available for calculating how the
 * connecting lines are drawn.
 *
 * Connector functionality requires Highcharts Gantt to be loaded. In Gantt
 * charts, the connectors are used to draw dependencies between tasks.
 */
export interface ConnectorsOptions {
    /**
     * (Gantt) Set the default pathfinder margin to use, in pixels. Some
     * Pathfinder algorithms attempt to avoid obstacles, such as other points in
     * the chart. These algorithms use this margin to determine how close lines
     * can be to an obstacle. The default is to compute this automatically from
     * the size of the obstacles in the chart.
     *
     * To draw connecting lines close to existing points, set this to a low
     * number. For more space around existing points, set this number higher.
     */
    algorithmMargin?: number;
    /**
     * (Gantt) Set the default dash style for this chart's connecting lines.
     */
    dashStyle?: string;
    /**
     * (Gantt) Enable connectors for this chart. Requires Highcharts Gantt.
     */
    enabled?: boolean;
    /**
     * (Gantt) Marker options specific to the end markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    endMarker?: ConnectorsEndMarkerOptions;
    /**
     * (Gantt) Set the default color for this chart's Pathfinder connecting
     * lines. Defaults to the color of the point being connected.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) Set the default pixel width for this chart's Pathfinder
     * connecting lines.
     */
    lineWidth?: number;
    /**
     * (Gantt) Marker options for this chart's Pathfinder connectors. Note that
     * this option is overridden by the `startMarker` and `endMarker` options.
     */
    marker?: ConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: ConnectorsStartMarkerOptions;
    /**
     * (Gantt) Set the default pathfinder algorithm to use for this chart. It is
     * possible to define your own algorithms by adding them to the
     * Highcharts.Pathfinder.prototype.algorithms object before the chart has
     * been created.
     *
     * The default algorithms are as follows:
     *
     * `straight`: Draws a straight line between the connecting points. Does not
     * avoid other points when drawing.
     *
     * `simpleConnect`: Finds a path between the points using right angles only.
     * Takes only starting/ending points into account, and will not avoid other
     * points.
     *
     * `fastAvoid`: Finds a path between the points using right angles only.
     * Will attempt to avoid other points, but its focus is performance over
     * accuracy. Works well with less dense datasets.
     *
     * Default value: `straight` is used as default for most series types, while
     * `simpleConnect` is used as default for Gantt series, to show dependencies
     * between points.
     */
    type?: PathfinderTypeValue;
}
/**
 * (Gantt) Marker options specific to the start markers for this chart's
 * Pathfinder connectors. Overrides the generic marker options.
 */
export interface ConnectorsStartMarkerOptions {
    /**
     * (Gantt) Horizontal alignment of the markers relative to the points.
     */
    align?: (string|AlignValue);
    /**
     * (Gantt) Set the color of the connector markers. By default this is the
     * same as the connector color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Gantt) Enable markers for the connectors.
     */
    enabled?: boolean;
    fill?: string;
    /**
     * (Gantt) Set the height of the connector markers. If not supplied, this is
     * inferred from the marker radius.
     */
    height?: number;
    /**
     * (Gantt) Whether or not to draw the markers inside the points.
     */
    inside?: boolean;
    /**
     * (Gantt) Set the line/border color of the connector markers. By default
     * this is the same as the marker color.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) Set the line/border width of the pathfinder markers.
     */
    lineWidth?: number;
    /**
     * (Gantt) Set the radius of the connector markers. The default is
     * automatically computed based on the algorithmMargin setting.
     *
     * Setting marker.width and marker.height will override this setting.
     */
    radius?: number;
    /**
     * (Gantt) Set the symbol of the connector start markers.
     */
    symbol?: string;
    /**
     * (Gantt) Vertical alignment of the markers relative to the points.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Gantt) Set the width of the connector markers. If not supplied, this is
     * inferred from the marker radius.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Highchart by default puts a credits
 * label in the lower right corner of the chart. This can be changed using these
 * options.
 */
export interface CreditsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to show the credits
     * text.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The URL for the credits label.
     */
    href?: string;
    /**
     * (Highmaps) Credits for map source to be concatenated with conventional
     * credit text. By default this is a format string that collects copyright
     * information from the map if available.
     */
    mapText?: string;
    /**
     * (Highmaps) Detailed credits for map source to be displayed on hover of
     * credits text. By default this is a format string that collects copyright
     * information from the map if available.
     */
    mapTextFull?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Position configuration for the
     * credits label.
     */
    position?: AlignObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the credits
     * label.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text for the credits label.
     */
    text?: string;
}
/**
 * A style object with camel case property names to define visual appearance of
 * a SVG element or HTML element. The properties can be whatever styles are
 * supported on the given SVG or HTML element.
 */
export interface CSSObject {
    [key: string]: (boolean|number|string|undefined);
    /**
     * Background style for the element.
     */
    background?: string;
    /**
     * Background color of the element.
     */
    backgroundColor?: ColorString;
    /**
     * Border style for the element.
     */
    border?: string;
    /**
     * Radius of the element border.
     */
    borderRadius?: number;
    /**
     * Color used in the element. The 'contrast' option is a Highcharts custom
     * property that results in black or white, depending on the background of
     * the element.
     */
    color?: ('contrast'|ColorString);
    /**
     * Style of the mouse cursor when resting over the element.
     */
    cursor?: CursorValue;
    /**
     * Font family of the element text. Multiple values have to be in decreasing
     * preference order and separated by comma.
     */
    fontFamily?: string;
    /**
     * Font size of the element text.
     */
    fontSize?: string;
    /**
     * Font weight of the element text.
     */
    fontWeight?: string;
    /**
     * Height of the element.
     */
    height?: number;
    /**
     * Width of the element border.
     */
    lineWidth?: number;
    /**
     * Opacity of the element.
     */
    opacity?: number;
    /**
     * Space around the element content.
     */
    padding?: string;
    /**
     * Behaviour of the element when the mouse cursor rests over it.
     */
    pointerEvents?: string;
    /**
     * Positioning of the element.
     */
    position?: string;
    /**
     * Alignment of the element text.
     */
    textAlign?: string;
    /**
     * Additional decoration of the element text.
     */
    textDecoration?: string;
    /**
     * Outline style of the element text.
     */
    textOutline?: string;
    /**
     * Line break style of the element text. Highcharts SVG elements support
     * `ellipsis` when a `width` is set.
     */
    textOverflow?: string;
    /**
     * Top spacing of the element relative to the parent element.
     */
    top?: string;
    /**
     * Animated transition of selected element properties.
     */
    transition?: string;
    /**
     * Line break style of the element text.
     */
    whiteSpace?: string;
    /**
     * Width of the element.
     */
    width?: number;
}
export interface DataGroupingInfoObject {
    length: number;
    options?: SeriesOptionsType;
    start: number;
}
/**
 * (Highstock) A custom data grouping object for each button.
 */
export interface DataGroupingOptionsObject {
    /**
     * (Highstock) The method of approximation inside a group. When for example
     * 30 days are grouped into one month, this determines what value should
     * represent the group. Possible values are "average", "averages", "open",
     * "high", "low", "close" and "sum". For OHLC and candlestick series the
     * approximation is "ohlc" by default, which finds the open, high, low and
     * close values within all the grouped data. For ranges, the approximation
     * is "range", which finds the low and high values. For multi-dimensional
     * data, like ranges and OHLC, "averages" will compute the average for each
     * dimension.
     *
     * Custom aggregate methods can be added by assigning a callback function as
     * the approximation. This function takes a numeric array as the argument
     * and should return a single numeric value or `null`. Note that the numeric
     * array will never contain null values, only true numbers. Instead, if null
     * values are present in the raw data, the numeric array will have an
     * `.hasNulls` property set to `true`. For single-value data sets the data
     * is available in the first argument of the callback function. For OHLC
     * data sets, all the open values are in the first argument, all high values
     * in the second etc.
     *
     * Since v4.2.7, grouping meta data is available in the approximation
     * callback from `this.dataGroupInfo`. It can be used to extract information
     * from the raw data.
     *
     * Defaults to `average` for line-type series, `sum` for columns, `range`
     * for range series and `ohlc` for OHLC and candlestick.
     */
    approximation?: (string|DataGroupingApproximationValue|Function);
    /**
     * (Highstock) Datetime formats for the header of the tooltip in a stock
     * chart. The format can vary within a chart depending on the currently
     * selected time range and the current data grouping.
     *
     * The default formats are: (see online documentation for example)
     *
     * For each of these array definitions, the first item is the format used
     * when the active time span is one unit. For instance, if the current data
     * applies to one week, the first item of the week array is used. The second
     * and third items are used when the active time span is more than two
     * units. For instance, if the current data applies to two weeks, the second
     * and third item of the week array are used, and applied to the start and
     * end date of the time span.
     */
    dateTimeLabelFormats?: object;
    /**
     * (Highstock) Enable or disable data grouping.
     */
    enabled?: boolean;
    /**
     * (Highstock) When data grouping is forced, it runs no matter how small the
     * intervals are. This can be handy for example when the sum should be
     * calculated for values appearing at random times within each hour.
     */
    forced?: boolean;
    /**
     * (Highstock) By default only points within the visible range are grouped.
     * Enabling this option will force data grouping to calculate all grouped
     * points for a given dataset. That option prevents for example a column
     * series from calculating a grouped point partially. The effect is similar
     * to Series.getExtremesFromAll but does not affect yAxis extremes.
     */
    groupAll?: boolean;
    /**
     * (Highstock) The approximate pixel width of each group. If for example a
     * series with 30 points is displayed over a 600 pixel wide plot area, no
     * grouping is performed. If however the series contains so many points that
     * the spacing is less than the groupPixelWidth, Highcharts will try to
     * group it into appropriate groups so that each is more or less two pixels
     * wide. If multiple series with different group pixel widths are drawn on
     * the same x axis, all series will take the greatest width. For example,
     * line series have 2px default group width, while column series have 10px.
     * If combined, both the line and the column will have 10px by default.
     */
    groupPixelWidth?: number;
    /**
     * (Highstock) Normally, a group is indexed by the start of that group, so
     * for example when 30 daily values are grouped into one month, that month's
     * x value will be the 1st of the month. This apparently shifts the data to
     * the left. When the smoothed option is true, this is compensated for. The
     * data is shifted to the middle of the group, and min and max values are
     * preserved. Internally, this is used in the Navigator series.
     */
    smoothed?: boolean;
    /**
     * (Highstock) An array determining what time intervals the data is allowed
     * to be grouped to. Each array item is an array where the first value is
     * the time unit and the second value another array of allowed multiples.
     *
     * Defaults to: (see online documentation for example)
     */
    units?: Array<[string, (Array<number>|null)]>;
}
/**
 * (Highcharts, Highstock, Gantt) A declarative filter to control of which data
 * labels to display. The declarative filter is designed for use when callback
 * functions are not available, like when the chart options require a pure JSON
 * structure or for use with graphical editors. For programmatic control, use
 * the `formatter` instead, and return `undefined` to disable a single data
 * label.
 */
export interface DataLabelsFilterOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) The operator to compare by. Can be one of
     * `>`, `<`, `>=`, `<=`, `==`, and `===`.
     */
    operator?: OptionsOperatorValue;
    /**
     * (Highcharts, Highstock, Gantt) The point property to filter by. Point
     * options are passed directly to properties, additionally there are `y`
     * value, `percentage` and others listed under Highcharts.Point members.
     */
    property?: string;
    /**
     * (Highcharts, Highstock, Gantt) The value to compare against.
     */
    value?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Individual data label for each point. The
 * options are the same as the ones for plotOptions.series.dataLabels.
 */
export interface DataLabelsOptions {
    /**
     * (Highcharts, Highstock, Gantt) The alignment of the data label compared
     * to the point. If `right`, the right side of the label should be touching
     * the point. For points with an extent, like columns, the alignments also
     * dictates how to align it inside the box, as given with the inside option.
     * Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Gantt) Whether to allow data labels to overlap.
     * To make the labels less sensitive for overlapping, the dataLabels.padding
     * can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Enable or disable the initial animation
     * when a series is displayed for the `dataLabels`. The animation can also
     * be set as a configuration object. Please note that this option only
     * applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|SeriesAreaDataDataLabelsAnimationOptions|SeriesArearangeDataDataLabelsAnimationOptions|SeriesAreasplineDataDataLabelsAnimationOptions|
SeriesAreasplinerangeDataDataLabelsAnimationOptions|SeriesBarDataDataLabelsAnimationOptions|SeriesBoxplotDataDataLabelsAnimationOptions|SeriesBubbleDataDataLabelsAnimationOptions|
SeriesBulletDataDataLabelsAnimationOptions|SeriesCandlestickDataDataLabelsAnimationOptions|SeriesColumnDataDataLabelsAnimationOptions|SeriesColumnpyramidDataDataLabelsAnimationOptions|
SeriesColumnrangeDataDataLabelsAnimationOptions|SeriesCylinderDataDataLabelsAnimationOptions|SeriesDumbbellDataDataLabelsAnimationOptions|SeriesFunnelDataDataLabelsAnimationOptions|
SeriesGaugeDataDataLabelsAnimationOptions|SeriesHeatmapDataDataLabelsAnimationOptions|SeriesItemDataDataLabelsAnimationOptions|SeriesLineDataDataLabelsAnimationOptions|
SeriesLollipopDataDataLabelsAnimationOptions|SeriesNetworkgraphDataDataLabelsAnimationOptions|SeriesOhlcDataDataLabelsAnimationOptions|SeriesOrganizationDataDataLabelsAnimationOptions|
SeriesPackedbubbleDataDataLabelsAnimationOptions|SeriesParetoDataDataLabelsAnimationOptions|SeriesPieDataDataLabelsAnimationOptions|SeriesPolygonDataDataLabelsAnimationOptions|
SeriesPyramidDataDataLabelsAnimationOptions|SeriesSankeyDataDataLabelsAnimationOptions|SeriesScatter3dDataDataLabelsAnimationOptions|SeriesScatterDataDataLabelsAnimationOptions|
SeriesSolidgaugeDataDataLabelsAnimationOptions|SeriesSplineDataDataLabelsAnimationOptions|SeriesStreamgraphDataDataLabelsAnimationOptions|SeriesSunburstDataDataLabelsAnimationOptions|
SeriesTilemapDataDataLabelsAnimationOptions|SeriesTimelineDataDataLabelsAnimationOptions|SeriesTreemapDataDataLabelsAnimationOptions|SeriesVariablepieDataDataLabelsAnimationOptions|
SeriesVariwideDataDataLabelsAnimationOptions|SeriesVectorDataDataLabelsAnimationOptions|SeriesVennDataDataLabelsAnimationOptions|SeriesWaterfallDataDataLabelsAnimationOptions|
SeriesWindbarbDataDataLabelsAnimationOptions|SeriesWordcloudDataDataLabelsAnimationOptions|SeriesXrangeDataDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Gantt) The background color or gradient for the
     * data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The border color for the data label.
     * Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The border radius in pixels for the data
     * label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The border width in pixels for the data
     * label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text color for the data labels.
     * Defaults to `undefined`. For certain series types, like column or map,
     * the data labels can be drawn inside the points. In this case the data
     * label will be drawn with maximum contrast by default. Additionally, it
     * will be given a `text-outline` style with the opposite color, to further
     * increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Whether to hide data labels that are
     * outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Enable or disable the data labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A declarative filter to control of which
     * data labels to display. The declarative filter is designed for use when
     * callback functions are not available, like when the chart options require
     * a pure JSON structure or for use with graphical editors. For programmatic
     * control, use the `formatter` instead, and return `undefined` to disable a
     * single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) A format string for the data label.
     * Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Gantt) Callback JavaScript function to format the
     * data label. Note that if a `format` is defined, the format takes
     * precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) For points with an extent, like columns or
     * map areas, whether to align the data label inside the box or to the
     * actual value point. Defaults to `false` in most cases, `true` in stacked
     * columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Format for points with the value of null.
     * Works analogously to format. `nullFormat` can be applied only to series
     * which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Gantt) Callback JavaScript function that defines
     * formatting for points with the value of null. Works analogously to
     * formatter. `nullPointFormatter` can be applied only to series which
     * support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) How to handle data labels that flow
     * outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Gantt) When either the `borderWidth` or the
     * `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Aligns data labels relative to points. If
     * `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Text rotation in degrees. Note that due to
     * a more complex structure, backgrounds, borders and padding will be lost
     * on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) The shadow of the box. Works best with
     * `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Gantt) The name of a symbol to use for the border
     * around the label. Symbols are predefined functions on the Renderer
     * object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Gantt) Styles for the label. The default `color`
     * setting is `"contrast"`, which is a pseudo color that Highcharts picks up
     * and applies the maximum contrast to the underlying point item, for
     * example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) Options for a label text which should
     * follow marker's shape. Border and background are disabled for a label
     * that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) The vertical alignment of a data label.
     * Can be one of `top`, `middle` or `bottom`. The default value depends on
     * the data, for instance in a column chart, the label is above positive
     * values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Gantt) The x position offset of the label
     * relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) X offset of the higher data labels relative to
     * the point value.
     */
    xHigh?: number;
    /**
     * (Highcharts, Highstock) X offset of the lower data labels relative to the
     * point value.
     */
    xLow?: number;
    /**
     * (Highcharts, Highstock, Gantt) The y position offset of the label
     * relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock) Y offset of the higher data labels relative to
     * the point value.
     */
    yHigh?: number;
    /**
     * (Highcharts, Highstock) Y offset of the lower data labels relative to the
     * point value.
     */
    yLow?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Z index of the data labels. The
     * default Z index puts it above the series. Use a Z index of 2 to display
     * it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for a label text which should follow
 * marker's shape. Border and background are disabled for a label that follows a
 * path.
 *
 * **Note:** Only SVG-based renderer supports this option. Setting `useHTML` to
 * true will disable this option.
 */
export interface DataLabelsTextPathOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) Presentation attributes for the text path.
     */
    attributes?: SVGAttributes;
    /**
     * (Highcharts, Highstock, Gantt) Enable or disable `textPath` option for
     * link's or marker's data labels.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The Data module provides a
 * simplified interface for adding data to a chart from sources like CVS, HTML
 * tables or grid views. See also the tutorial article on the Data module.
 *
 * It requires the `modules/data.js` file to be loaded.
 *
 * Please note that the default way of adding data in Highcharts, without the
 * need of a module, is through the series._type_.data option.
 */
export interface DataOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback function to modify
     * the CSV before parsing it. Return the modified string.
     */
    beforeParse?: DataBeforeParseCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A two-dimensional array
     * representing the input data on tabular form. This input can be used when
     * the data is already parsed, for example from a grid view component. Each
     * cell can be a string or number. If not switchRowsAndColumns is set, the
     * columns are interpreted as series.
     */
    columns?: Array<Array<DataValueType>>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A URL to a remote JSON dataset,
     * structured as a column array. Will be fetched when the chart is created
     * using Ajax.
     */
    columnsURL?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The callback that is evaluated
     * when the data is finished loading, optionally from an external source,
     * and parsed. The first argument passed is a finished chart options object,
     * containing the series. These options can be extended with additional
     * options and passed directly to the chart constructor.
     */
    complete?: DataCompleteCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A comma delimited string to be
     * parsed. Related options are startRow, endRow, startColumn and endColumn
     * to delimit what part of the table is used. The lineDelimiter and
     * itemDelimiter options define the CSV delimiter formats.
     *
     * The built-in CSV parser doesn't support all flavours of CSV, so in some
     * cases it may be necessary to use an external CSV parser. See this example
     * of parsing CSV through the MIT licensed Papa Parse library.
     */
    csv?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An URL to a remote CSV dataset.
     * Will be fetched when the chart is created using Ajax.
     */
    csvURL?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Sets the refresh rate for data
     * polling when importing remote dataset by setting data.csvURL,
     * data.rowsURL, data.columnsURL, or data.googleSpreadsheetKey.
     *
     * Note that polling must be enabled by setting data.enablePolling to true.
     *
     * The value is the number of seconds between pollings. It cannot be set to
     * less than 1 second.
     */
    dataRefreshRate?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Which of the predefined date
     * formats in Date.prototype.dateFormats to use to parse date values.
     * Defaults to a best guess based on what format gives valid and ordered
     * dates. Valid options include: `YYYY/mm/dd`, `dd/mm/YYYY`, `mm/dd/YYYY`,
     * `dd/mm/YY`, `mm/dd/YY`.
     */
    dateFormat?: OptionsDateFormatValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The decimal point used for
     * parsing numbers in the CSV.
     *
     * If both this and data.delimiter is set to `undefined`, the parser will
     * attempt to deduce the decimal point automatically.
     */
    decimalPoint?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enables automatic refetching of
     * remote datasets every _n_ seconds (defined by setting
     * data.dataRefreshRate).
     *
     * Only works when either data.csvURL, data.rowsURL, data.columnsURL, or
     * data.googleSpreadsheetKey.
     */
    enablePolling?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) In tabular input data, the last
     * column (indexed by 0) to use. Defaults to the last column containing
     * data.
     */
    endColumn?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) In tabular input data, the last
     * row (indexed by 0) to use. Defaults to the last row containing data.
     */
    endRow?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the first row in the data
     * set as series names.
     */
    firstRowAsNames?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The key for a Google Spreadsheet
     * to load. See general information on GS.
     */
    googleSpreadsheetKey?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Google Spreadsheet worksheet
     * to use in combination with googleSpreadsheetKey. The available id's from
     * your sheet can be read from
     * `https://spreadsheets.google.com/feeds/worksheets/{key}/public/basic`.
     */
    googleSpreadsheetWorksheet?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Item or cell delimiter for
     * parsing CSV. Defaults to the tab character `\t` if a tab character is
     * found in the CSV string, if not it defaults to `,`.
     *
     * If this is set to false or undefined, the parser will attempt to deduce
     * the delimiter automatically.
     */
    itemDelimiter?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Line delimiter for parsing CSV.
     */
    lineDelimiter?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback function to access
     * the parsed columns, the two-dimentional input data array directly, before
     * they are interpreted into series data and categories. Return `false` to
     * stop completion, or call `this.complete()` to continue async.
     */
    parsed?: DataParsedCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback function to parse
     * string representations of dates into JavaScript timestamps. Should return
     * an integer timestamp on success.
     */
    parseDate?: DataParseDateCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The same as the columns input
     * option, but defining rows intead of columns.
     */
    rows?: Array<Array<DataValueType>>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A URL to a remote JSON dataset,
     * structured as a row array. Will be fetched when the chart is created
     * using Ajax.
     */
    rowsURL?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array containing dictionaries
     * for each series. A dictionary exists of Point property names as the key
     * and the CSV column index as the value.
     */
    seriesMapping?: Array<Dictionary<number>>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) In tabular input data, the first
     * column (indexed by 0) to use.
     */
    startColumn?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) In tabular input data, the first
     * row (indexed by 0) to use.
     */
    startRow?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Switch rows and columns of the
     * input data, so that `this.columns` effectively becomes the rows of the
     * data set, and the rows are interpreted as series.
     */
    switchRowsAndColumns?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An HTML table or the id of such
     * to be parsed as input data. Related options are `startRow`, `endRow`,
     * `startColumn` and `endColumn` to delimit what part of the table is used.
     */
    table?: (string|HTMLElement);
}
/**
 * Options for `dataSorting`.
 */
export interface DataSortingOptionsObject {
    /**
     * Enable or disable data sorting for the series.
     */
    enabled?: boolean;
    /**
     * Whether to allow matching points by name in an update.
     */
    matchByName?: boolean;
    /**
     * Determines what data value should be used to sort by.
     */
    sortKey?: string;
}
export interface DefsArrowOptions {
    children?: Array<DefsOptions>;
    id?: string;
    markerHeight?: number;
    markerWidth?: number;
    refX?: number;
    refY?: number;
    render?: boolean;
    tagName?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for configuring markers for
 * annotations.
 *
 * An example of the arrow marker: (see online documentation for example)
 */
export interface DefsOptions {
    arrow?: (DefsArrowOptions|SVGDefinitionObject);
    "reverse-arrow"?: (DefsReverseArrowOptions|SVGDefinitionObject);
}
export interface DefsReverseArrowOptions {
    id?: string;
    markerHeight?: number;
    markerWidth?: number;
    refX?: number;
    refY?: number;
    render?: boolean;
    tagName?: string;
}
/**
 * Generic dictionary in TypeScript notation. Use the native `Record<string,
 * any>` instead.
 */
export interface Dictionary<T> {
    [key: string]: T;
}
/**
 * (Highcharts, Highstock, Gantt) Style options for the guide box default state.
 */
export interface DragDropGuideBoxOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) CSS class name of the guide box in this
     * state. Defaults to `highcharts-drag-box-default`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) Guide box fill color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) Guide box cursor.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock, Gantt) Color of the border around the guide box.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) Width of the line around the guide box.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Guide box zIndex.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for the drag handles.
 */
export interface DragDropHandleOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) The class name of the drag handles.
     * Defaults to `highcharts-drag-handle`.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The fill color of the drag handles.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The mouse cursor to use for the drag
     * handles. By default this is intelligently switching between `ew-resize`
     * and `ns-resize` depending on the direction the point is being dragged.
     */
    cursor?: string;
    /**
     * (Highcharts, Highstock, Gantt) The line color of the drag handles.
     */
    lineColor?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) The line width for the drag handles.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Function to define the SVG path to use for
     * the drag handles. Takes the point as argument. Should return an SVG path
     * in array format. The SVG path is automatically positioned on the point.
     */
    pathFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) The z index for the drag handles.
     */
    zIndex?: number;
}
/**
 * Current drag and drop position.
 */
export interface DragDropPositionObject {
    /**
     * Chart x position
     */
    chartX: number;
    /**
     * Chart y position
     */
    chartY: number;
    /**
     * Drag and drop guide box.
     */
    guideBox?: BBoxObject;
    /**
     * Updated point data.
     */
    points: Dictionary<Dictionary<number>>;
    /**
     * Delta of previous x position.
     */
    prevdX?: number;
    /**
     * Delta of previous y position.
     */
    prevdY?: number;
}
/**
 * (Highcharts, Highmaps) Additional styles to apply to the data label of a
 * point that has drilldown data. By default it is underlined and blue to invite
 * to interaction.
 *
 * In styled mode, active data label styles can be applied with the
 * `.highcharts-drilldown-data-label` class.
 */
export interface DrilldownActiveDataLabelStyleOptions {
    color?: string;
    cursor?: string;
    fontWeight?: string;
    textDecoration?: string;
}
/**
 * (Highcharts, Highmaps) Options for the drill up button that appears when
 * drilling down on a series. The text for the button is defined in
 * lang.drillUpText.
 */
export interface DrilldownDrillUpButtonOptions {
    /**
     * (Highcharts, Highmaps) Positioning options for the button within the
     * `relativeTo` box. Available properties are `x`, `y`, `align` and
     * `verticalAlign`.
     */
    position?: (AlignObject|DrilldownDrillUpButtonPositionOptions);
    /**
     * (Highcharts, Highmaps) What box to align the button to. Can be either
     * `plotBox` or `spacingBox`.
     */
    relativeTo?: ButtonRelativeToValue;
    /**
     * (Highcharts, Highmaps) A collection of attributes for the button. The
     * object takes SVG attributes like `fill`, `stroke`, `stroke-width` or `r`,
     * the border radius. The theme also supports `style`, a collection of CSS
     * properties for the text. Equivalent attributes for the hover state are
     * given in `theme.states.hover`.
     *
     * In styled mode, drill-up button styles can be applied with the
     * `.highcharts-drillup-button` class.
     */
    theme?: object;
}
/**
 * (Highcharts, Highmaps) Positioning options for the button within the
 * `relativeTo` box. Available properties are `x`, `y`, `align` and
 * `verticalAlign`.
 */
export interface DrilldownDrillUpButtonPositionOptions {
    /**
     * (Highcharts, Highmaps) Horizontal alignment.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highmaps) Vertical alignment of the button.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highmaps) The X offset of the button.
     */
    x?: number;
    /**
     * (Highcharts, Highmaps) The Y offset of the button.
     */
    y?: number;
}
/**
 * The event arguments when a drilldown point is clicked.
 */
export interface DrilldownEventObject {
    /**
     * If a category label was clicked, which index.
     */
    category?: number;
    /**
     * The original browser event (usually click) that triggered the drilldown.
     */
    originalEvent?: Event;
    /**
     * The originating point.
     */
    point: Point;
    /**
     * If a category label was clicked, this array holds all points
     * corresponding to the category. Otherwise it is set to false.
     */
    points?: (boolean|Array<Point>);
    /**
     * Prevents the default behaviour of the event.
     */
    preventDefault: Function;
    /**
     * Options for the new series. If the event is utilized for async drilldown,
     * the seriesOptions are not added, but rather loaded async.
     */
    seriesOptions?: SeriesOptionsType;
    /**
     * The event target.
     */
    target: Chart;
    /**
     * The event type.
     */
    type: "drilldown";
}
/**
 * (Highcharts, Highmaps) Options for drill down, the concept of inspecting
 * increasingly high resolution data through clicking on chart items like
 * columns or pie slices.
 *
 * The drilldown feature requires the drilldown.js file to be loaded, found in
 * the modules directory of the download package, or online at
 * code.highcharts.com/modules/drilldown.js.
 */
export interface DrilldownOptions {
    /**
     * (Highcharts, Highmaps) Additional styles to apply to the X axis label for
     * a point that has drilldown data. By default it is underlined and blue to
     * invite to interaction.
     *
     * In styled mode, active label styles can be set with the
     * `.highcharts-drilldown-axis-label` class.
     */
    activeAxisLabelStyle?: CSSObject;
    /**
     * (Highcharts, Highmaps) Additional styles to apply to the data label of a
     * point that has drilldown data. By default it is underlined and blue to
     * invite to interaction.
     *
     * In styled mode, active data label styles can be applied with the
     * `.highcharts-drilldown-data-label` class.
     */
    activeDataLabelStyle?: (CSSObject|DrilldownActiveDataLabelStyleOptions);
    /**
     * (Highcharts) When this option is false, clicking a single point will
     * drill down all points in the same category, equivalent to clicking the X
     * axis label.
     */
    allowPointDrilldown?: boolean;
    /**
     * (Highcharts, Highmaps) Set the animation for all drilldown animations.
     * Animation of a drilldown occurs when drilling between a column point and
     * a column series, or a pie slice and a full pie series. Drilldown can
     * still be used between series and points of different types, but animation
     * will not occur.
     *
     * The animation can either be set as a boolean or a configuration object.
     * If `true`, it will use the 'swing' jQuery easing and a duration of 500
     * ms. If used as a configuration object, the following properties are
     * supported:
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: A string reference to an easing function set on the `Math`
     * object. See the easing demo.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highmaps) Options for the drill up button that appears when
     * drilling down on a series. The text for the button is defined in
     * lang.drillUpText.
     */
    drillUpButton?: DrilldownDrillUpButtonOptions;
    /**
     * (Highcharts, Highmaps) An array of series configurations for the drill
     * down. Each series configuration uses the same syntax as the series option
     * set. These drilldown series are hidden by default. The drilldown series
     * is linked to the parent series' point by its `id`.
     */
    series?: Array<SeriesOptionsType>;
}
/**
 * The event arguments when all the series have been drilled up.
 */
export interface DrillupAllEventObject {
    /**
     * Prevents the default behaviour of the event.
     */
    preventDefault: Function;
    /**
     * The event target.
     */
    target: Chart;
    /**
     * The event type.
     */
    type: "drillupall";
}
/**
 * The event arguments when drilling up from a drilldown series.
 */
export interface DrillupEventObject {
    /**
     * Prevents the default behaviour of the event.
     */
    preventDefault: Function;
    /**
     * Options for the new series.
     */
    seriesOptions?: SeriesOptionsType;
    /**
     * The event target.
     */
    target: Chart;
    /**
     * The event type.
     */
    type: "drillup";
}
/**
 * The event options for adding function callback.
 */
export interface EventOptionsObject {
    /**
     * The order the event handler should be called. This opens for having one
     * handler be called before another, independent of in which order they were
     * added.
     */
    order: number;
}
/**
 * Contains information about the export data event.
 */
export interface ExportDataEventObject {
    /**
     * Contains the data rows for the current export task and can be modified.
     */
    dataRows: Array<Array<string>>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for the
 * exporting menu. Requires the Accessibility module.
 */
export interface ExportingAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable accessibility support for
     * the export menu.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) A configuration object for the
 * button theme. The object accepts SVG properties like `stroke-width`, `stroke`
 * and `fill`. Tri-state button styles are supported by the `states.hover` and
 * `states.select` objects.
 */
export interface ExportingButtonsContextButtonThemeOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The default fill exists only to
     * capture hover events.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Padding for the button.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Default stroke for the buttons.
     */
    stroke?: ColorString;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the export related
 * buttons, print and export. In addition to the default buttons listed here,
 * custom buttons can be added. See navigation.buttonOptions for general
 * options.
 */
export interface ExportingButtonsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the export button.
     *
     * In styled mode, export button styles can be applied with the
     * `.highcharts-contextbutton` class.
     */
    contextButton?: ExportingButtonsOptionsObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the export button.
 *
 * In styled mode, export button styles can be applied with the
 * `.highcharts-contextbutton` class.
 */
export interface ExportingButtonsOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alignment for the buttons.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel spacing between
     * buttons.
     */
    buttonSpacing?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The class name of the context
     * button.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to enable buttons.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Pixel height of the buttons.
     */
    height?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The class name of the menu
     * appearing from the button.
     */
    menuClassName?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A collection of strings pointing
     * to config options for the menu items. The config options are defined in
     * the `menuItemDefinitions` option.
     *
     * By default, there is the "View in full screen" and "Print" menu items,
     * plus one menu item for each of the available export types.
     */
    menuItems?: Array<string>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A click handler callback to use
     * on the button directly instead of the popup menu.
     */
    onclick?: Function;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The symbol for the button.
     * Points to a definition function in the `Highcharts.Renderer.symbols`
     * collection. The default `exportIcon` function is part of the exporting
     * module. Possible values are "circle", "square", "diamond", "triangle",
     * "triangle-down", "menu", "menuball" or custom shape.
     */
    symbol?: ("menu"|"menuball"|"exportIcon"|string|SymbolKeyValue);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) See
     * navigation.buttonOptions.symbolFill.
     */
    symbolFill?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel size of the symbol on
     * the button.
     */
    symbolSize?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the symbol's stroke
     * or line.
     */
    symbolStroke?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel stroke width of the
     * symbol on the button.
     */
    symbolStrokeWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position of the center of
     * the symbol inside the button.
     */
    symbolX?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position of the center of
     * the symbol inside the button.
     */
    symbolY?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A text string to add to the
     * individual button.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A configuration object for the
     * button theme. The object accepts SVG properties like `stroke-width`,
     * `stroke` and `fill`. Tri-state button styles are supported by the
     * `states.hover` and `states.select` objects.
     */
    theme?: ExportingButtonsContextButtonThemeOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The key to a lang option setting
     * that is used for the button's title tooltip. When the key is
     * `contextButtonTitle`, it refers to lang.contextButtonTitle that defaults
     * to "Chart context menu".
     */
    titleKey?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * buttons. Can be one of `"top"`, `"middle"` or `"bottom"`.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the button.
     */
    width?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The horizontal position of the
     * button relative to the `align` option.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical offset of the
     * button's position relative to its `verticalAlign`.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for annotations in the
 * export-data table.
 */
export interface ExportingCsvAnnotationsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The way to mark the separator
     * for annotations combined in one export-data table cell.
     */
    itemDelimiter?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When several labels are assigned
     * to a specific point, they will be displayed in one field in the table.
     */
    join?: boolean;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for exporting data to CSV or
 * ExCel, or displaying the data in a HTML table or a JavaScript structure.
 *
 * This module adds data export options to the export menu and provides
 * functions like `Chart.getCSV`, `Chart.getTable`, `Chart.getDataRows` and
 * `Chart.viewData`.
 *
 * The XLS converter is limited and only creates a HTML string that is passed
 * for download, which works but creates a warning before opening. The
 * workaround for this is to use a third party XLSX converter, as demonstrated
 * in the sample below.
 */
export interface ExportingCsvOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for annotations in the
     * export-data table.
     */
    annotations?: ExportingCsvAnnotationsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Formatter callback for the
     * column headers. Parameters are:
     *
     * - `item` - The series or axis object)
     *
     * - `key` - The point key, for example y or z
     *
     * - `keyLength` - The amount of value keys for this item, for example a
     * range series has the keys `low` and `high` so the key length is 2.
     *
     * If useMultiLevelHeaders is true, columnHeaderFormatter by default returns
     * an object with columnTitle and topLevelColumnTitle for each key. Columns
     * with the same topLevelColumnTitle have their titles merged into a single
     * cell with colspan for table/Excel export.
     *
     * If `useMultiLevelHeaders` is false, or for CSV export, it returns the
     * series name, followed by the key if there is more than one key.
     *
     * For the axis it returns the axis title or "Category" or "DateTime" by
     * default.
     *
     * Return `false` to use Highcharts' proposed header.
     */
    columnHeaderFormatter?: (Function|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Which date format to use for
     * exported dates on a datetime X axis. See `Highcharts.dateFormat`.
     */
    dateFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Which decimal point to use for
     * exported CSV. Defaults to the same as the browser locale, typically `.`
     * (English) or `,` (German, French etc).
     */
    decimalPoint?: (string|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The item delimiter in the
     * exported data. Use `;` for direct exporting to Excel. Defaults to a best
     * guess based on the browser locale. If the locale _decimal point_ is `,`,
     * the `itemDelimiter` defaults to `;`, otherwise the `itemDelimiter`
     * defaults to `,`.
     */
    itemDelimiter?: (string|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The line delimiter in the
     * exported data, defaults to a newline.
     */
    lineDelimiter?: string;
}
/**
 * Definition for a menu item in the context menu.
 */
export interface ExportingMenuObject {
    /**
     * The click handler for the menu item.
     */
    onclick?: EventCallbackFunction<Chart>;
    /**
     * Indicates a separator line instead of an item.
     */
    separator?: boolean;
    /**
     * The text for the menu item.
     */
    text?: string;
    /**
     * If internationalization is required, the key to a language string.
     */
    textKey?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the exporting module.
 * For an overview on the matter, see the docs.
 */
export interface ExportingOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for the
     * exporting menu. Requires the Accessibility module.
     */
    accessibility?: ExportingAccessibilityOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Experimental setting to allow
     * HTML inside the chart (added through the `useHTML` options), directly in
     * the exported image. This allows you to preserve complicated HTML
     * structures like tables or bi-directional text in exported charts.
     *
     * Disclaimer: The HTML is rendered in a `foreignObject` tag in the
     * generated SVG. The official export server is based on PhantomJS, which
     * supports this, but other SVG clients, like Batik, does not support it.
     * This also applies to downloaded SVG that you want to open in a desktop
     * client.
     */
    allowHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the export related
     * buttons, print and export. In addition to the default buttons listed
     * here, custom buttons can be added. See navigation.buttonOptions for
     * general options.
     */
    buttons?: (ExportingButtonsOptions|Dictionary<ExportingButtonsOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Additional chart options to be
     * merged into the chart before exporting to an image format. This does not
     * apply to printing the chart via the export menu.
     *
     * For example, a common use case is to add data labels to improve
     * readability of the exported chart, or to add a printer-friendly color
     * scheme to exported PDFs.
     */
    chartOptions?: Options;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for exporting data to
     * CSV or ExCel, or displaying the data in a HTML table or a JavaScript
     * structure.
     *
     * This module adds data export options to the export menu and provides
     * functions like `Chart.getCSV`, `Chart.getTable`, `Chart.getDataRows` and
     * `Chart.viewData`.
     *
     * The XLS converter is limited and only creates a HTML string that is
     * passed for download, which works but creates a warning before opening.
     * The workaround for this is to use a third party XLSX converter, as
     * demonstrated in the sample below.
     */
    csv?: ExportingCsvOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to enable the exporting
     * module. Disabling the module will hide the context button, but API
     * methods will still be available.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Function to call if the
     * offline-exporting module fails to export a chart on the client side, and
     * fallbackToExportServer is disabled. If left undefined, an exception is
     * thrown instead. Receives two parameters, the exporting options, and the
     * error from the module.
     */
    error?: ExportingErrorCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether or not to fall back to
     * the export server if the offline-exporting module is unable to export the
     * chart on the client side. This happens for certain browsers, and certain
     * features (e.g. allowHTML), depending on the image type exporting to. For
     * very complex charts, it is possible that export can fail in browsers that
     * don't support Blob objects, due to data URL length limits. It is
     * recommended to define the exporting.error handler if disabling fallback,
     * in order to notify users in case export fails.
     */
    fallbackToExportServer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The filename, without extension,
     * to use for the exported chart.
     */
    filename?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An object containing additional
     * key value data for the POST form that sends the SVG to the export server.
     * For example, a `target` can be set to make sure the generated image is
     * received in another frame, or a custom `enctype` or `encoding` can be
     * set.
     */
    formAttributes?: HTMLAttributes;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Path where Highcharts will look
     * for export module dependencies to load on demand if they don't already
     * exist on `window`. Should currently point to location of CanVG library,
     * RGBColor.js, jsPDF and svg2pdf.js, required for client side export in
     * certain browsers.
     */
    libURL?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An object consisting of
     * definitions for the menu items in the context menu. Each key value pair
     * has a `key` that is referenced in the menuItems setting, and a `value`,
     * which is an object with the following properties:
     *
     * - **onclick:** The click handler for the menu item
     *
     * - **text:** The text for the menu item
     *
     * - **textKey:** If internationalization is required, the key to a language
     * string
     *
     * Custom text for the "exitFullScreen" can be set only in lang options (it
     * is not a separate button).
     */
    menuItemDefinitions?: Dictionary<ExportingMenuObject>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When printing the chart from the
     * menu item in the burger menu, if the on-screen chart exceeds this width,
     * it is resized. After printing or cancelled, it is restored. The default
     * width makes the chart fit into typical paper format. Note that this does
     * not affect the chart when printing the web page as a whole.
     */
    printMaxWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Defines the scale or zoom factor
     * for the exported image compared to the on-screen display. While for
     * instance a 600px wide chart may look good on a website, it will look bad
     * in print. The default scale of 2 makes this chart export to a 1200px PNG
     * or JPG.
     */
    scale?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Show a HTML table below the
     * chart with the chart's current data.
     */
    showTable?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Analogous to sourceWidth.
     */
    sourceHeight?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the original chart
     * when exported, unless an explicit chart.width is set, or a pixel width is
     * set on the container. The width exported raster image is then multiplied
     * by scale.
     */
    sourceWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Caption for the data table. Same
     * as chart title by default. Set to `false` to disable.
     */
    tableCaption?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Default MIME type for exporting
     * if `chart.exportChart()` is called without specifying a `type` option.
     * Possible values are `image/png`, `image/jpeg`, `application/pdf` and
     * `image/svg+xml`.
     */
    type?: ExportingMimeTypeValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The URL for the server module
     * converting the SVG string to an image format. By default this points to
     * Highchart's free web service.
     */
    url?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Use multi level headers in data
     * table. If csv.columnHeaderFormatter is defined, it has to return objects
     * in order for multi level headers to work.
     */
    useMultiLevelHeaders?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If using multi level table
     * headers, use rowspans for headers that have only one level.
     */
    useRowspanHeaders?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of charts
     * exported to PNG or JPG. As of Highcharts 3.0, the default pixel width is
     * a function of the chart.width or exporting.sourceWidth and the
     * exporting.scale.
     */
    width?: number;
}
/**
 * The returned object literal from the Highcharts.Axis#getExtremes function.
 */
export interface ExtremesObject {
    /**
     * The maximum value of the axis' associated series.
     */
    dataMax: number;
    /**
     * The minimum value of the axis' associated series.
     */
    dataMin: number;
    /**
     * The maximum axis value, either automatic or set manually. If the `max`
     * option is not set, `maxPadding` is 0 and `endOnTick` is false, this value
     * will be the same as `dataMax`.
     */
    max: number;
    /**
     * The minimum axis value, either automatic or set manually. If the `min`
     * option is not set, `minPadding` is 0 and `startOnTick` is false, this
     * value will be the same as `dataMin`.
     */
    min: number;
    /**
     * The user defined maximum, either from the `max` option or from a zoom or
     * `setExtremes` action.
     */
    userMax: number;
    /**
     * The user defined minimum, either from the `min` option or from a zoom or
     * `setExtremes` action.
     */
    userMin: number;
}
/**
 * The font metrics.
 */
export interface FontMetricsObject {
    /**
     * The baseline relative to the top of the box.
     */
    b: number;
    /**
     * The font size.
     */
    f: number;
    /**
     * The line height.
     */
    h: number;
}
/**
 * (Gantt) Data for a Gantt series.
 */
export interface GanttPointOptionsObject {
    /**
     * (Gantt) Accessibility options for a data point.
     */
    accessibility?: PointAccessibilityOptionsObject;
    /**
     * (Gantt) Whether the grid node belonging to this point should start as
     * collapsed. Used in axes of type treegrid.
     */
    collapsed?: boolean;
    /**
     * (Gantt) Progress indicator, how much of the task completed. If it is a
     * number, the `fill` will be applied automatically.
     */
    completed?: (number|XrangePointPartialFillOptionsObject);
    /**
     * (Gantt) A reserved subspace to store options and values for customized
     * functionality. Here you can add additional data for your own event
     * callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Gantt) The ID of the point (task) that this point depends on in Gantt
     * charts. Aliases connect. Can also be an object, specifying further
     * connecting options between the points. Multiple connections can be
     * specified by providing an array.
     */
    dependency?: (string|XrangePointConnectorsOptionsObject|Array<(string|XrangePointConnectorsOptionsObject)>);
    /**
     * (Gantt) A description of the point to add to the screen reader
     * information about the point.
     */
    description?: string;
    /**
     * (Gantt) Point specific options for the draggable-points module. Overrides
     * options on `series.dragDrop`.
     */
    dragDrop?: SeriesLineDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Gantt) The end time of a task.
     */
    end?: number;
    /**
     * (Highcharts, Highstock, Gantt) An id for the point. This can be used
     * after render time to get a pointer to the point object through
     * `chart.get()`.
     */
    id?: string;
    /**
     * (Gantt) The rank for this point's data label in case of collision. If two
     * data labels are about to overlap, only the one with the highest
     * `labelrank` will be drawn.
     */
    labelrank?: number;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Gantt) Whether this point is a milestone. If so, only the `start` option
     * is handled, while `end` is ignored.
     */
    milestone?: boolean;
    /**
     * (Gantt) The name of a task. If a `treegrid` y-axis is used (default in
     * Gantt charts), this will be picked up automatically, and used to
     * calculate the y-value.
     */
    name?: string;
    /**
     * (Gantt) The ID of the parent point (task) of this point in Gantt charts.
     */
    parent?: string;
    /**
     * (Gantt) The start time of a task.
     */
    start?: number;
    /**
     * (Gantt) The Y value of a task.
     */
    y?: number;
}
/**
 * Represents the loose structure of a geographic JSON file.
 */
export interface GeoJSON {
    /**
     * Full copyright note of the geographic data.
     */
    copyright?: string;
    /**
     * Short copyright note of the geographic data suitable for watermarks.
     */
    copyrightShort?: string;
    /**
     * Additional meta information based on the coordinate reference system.
     */
    crs?: Dictionary<any>;
    /**
     * Data sets of geographic features.
     */
    features: Array<GeoJSONFeature>;
    /**
     * Map projections and transformations to be used when calculating between
     * lat/lon and chart values. Required for lat/lon support on maps. Allows
     * resizing, rotating, and moving portions of a map within its projected
     * coordinate system while still retaining lat/lon support. If using lat/lon
     * on a portion of the map that does not match a `hitZone`, the definition
     * with the key `default` is used.
     */
    "hc-transform"?: Dictionary<GeoJSONTranslation>;
    /**
     * Title of the geographic data.
     */
    title?: string;
    /**
     * Type of the geographic data. Type of an optimized map collection is
     * `FeatureCollection`.
     */
    type?: string;
    /**
     * Version of the geographic data.
     */
    version?: string;
}
/**
 * Data set of a geographic feature.
 */
export interface GeoJSONFeature extends Dictionary<any> {
    /**
     * Data type of the geographic feature.
     */
    type: string;
}
/**
 * Describes the map projection and transformations applied to a portion of a
 * map.
 */
export interface GeoJSONTranslation {
    /**
     * The coordinate reference system used to generate this portion of the map.
     */
    crs: string;
    /**
     * Define the portion of the map that this defintion applies to. Defined as
     * a GeoJSON polygon feature object, with `type` and `coordinates`
     * properties.
     */
    hitZone?: Dictionary<any>;
    /**
     * Property for internal use for maps generated by Highsoft.
     */
    jsonmarginX?: number;
    /**
     * Property for internal use for maps generated by Highsoft.
     */
    jsonmarginY?: number;
    /**
     * Property for internal use for maps generated by Highsoft.
     */
    jsonres?: number;
    /**
     * Specifies clockwise rotation of the coordinates after the projection, but
     * before scaling and panning. Defined in radians, relative to the
     * coordinate system origin.
     */
    rotation?: number;
    /**
     * The scaling factor applied to the projected coordinates.
     */
    scale?: number;
    /**
     * Property for internal use for maps generated by Highsoft.
     */
    xoffset?: number;
    /**
     * X offset of projected coordinates after scaling.
     */
    xpan?: number;
    /**
     * Property for internal use for maps generated by Highsoft.
     */
    yoffset?: number;
    /**
     * Y offset of projected coordinates after scaling.
     */
    ypan?: number;
}
export interface GlobalOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Path to the pattern image
     * required by VML browsers in order to draw radial gradients.
     */
    VMLRadialGradientURL?: string;
}
/**
 * Gradient options instead of a solid color.
 */
export interface GradientColorObject {
    /**
     * Holds an object that defines the start position and the end position
     * relative to the shape.
     */
    linearGradient?: LinearGradientColorObject;
    /**
     * Holds an object that defines the center position and the radius.
     */
    radialGradient?: RadialGradientColorObject;
    /**
     * The first item in each tuple is the position in the gradient, where 0 is
     * the start of the gradient and 1 is the end of the gradient. Multiple
     * stops can be applied. The second item is the color for each stop. This
     * color can also be given in the rgba format.
     */
    stops: Array<GradientColorStopObject>;
}
/**
 * Color stop tuple.
 */
export interface GradientColorStopObject {
    0: number;
    1: ColorString;
    color?: Color;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the focus border drawn
 * around elements while navigating through them.
 */
export interface KeyboardNavigationFocusBorderOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable/disable focus border for
     * chart.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Hide the browser's default focus
     * indicator.
     */
    hideBrowserFocusOutline?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Focus border margin around the
     * elements.
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Style options for the focus
     * border drawn around elements while navigating through them. Note that
     * some browsers in addition draw their own borders for focused elements.
     * These automatic borders can not be styled by Highcharts.
     *
     * In styled mode, the border is given the `.highcharts-focus-border` class.
     */
    style?: CSSObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for keyboard navigation.
 */
export interface KeyboardNavigationOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable keyboard navigation for
     * the chart.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the focus border
     * drawn around elements while navigating through them.
     */
    focusBorder?: KeyboardNavigationFocusBorderOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Order of tab navigation in the
     * chart. Determines which elements are tabbed to first. Available elements
     * are: `series`, `zoom`, `rangeSelector`, `chartMenu`, `legend`. In
     * addition, any custom components can be added here.
     */
    order?: Array<string>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the keyboard
     * navigation of data points and series.
     */
    seriesNavigation?: KeyboardNavigationSeriesNavigationOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether or not to wrap around
     * when reaching the end of arrow-key navigation for an element in the
     * chart.
     */
    wrapAround?: boolean;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the keyboard navigation
 * of data points and series.
 */
export interface KeyboardNavigationSeriesNavigationOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the keyboard navigation mode
     * for the chart. Can be "normal" or "serialize". In normal mode, left/right
     * arrow keys move between points in a series, while up/down arrow keys move
     * between series. Up/down navigation acts intelligently to figure out which
     * series makes sense to move to from any given point.
     *
     * In "serialize" mode, points are instead navigated as a single list.
     * Left/right behaves as in "normal" mode. Up/down arrow keys will behave
     * like left/right. This can be useful for unifying navigation behavior
     * with/without screen readers enabled.
     */
    mode?: OptionsModeValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When a series contains more
     * points than this, we no longer allow keyboard navigation for it.
     *
     * Set to `false` to disable.
     */
    pointNavigationEnabledThreshold?: (boolean|number);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Skip null points when navigating
     * through points with the keyboard.
     */
    skipNullPoints?: boolean;
}
/**
 * Containing the position of a box that should be avoided by labels.
 */
export interface LabelIntersectBoxObject {
    bottom: number;
    left: number;
    right: number;
    top: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Default announcement for new data in
 * charts. If addPoint or addSeries is used, and only one series/point is added,
 * the `newPointAnnounce` and `newSeriesAnnounce` strings are used. The
 * `...Single` versions will be used if there is only one chart on the page, and
 * the `...Multiple` versions will be used if there are multiple charts on the
 * page. For all other new data events, the `newDataAnnounce` string will be
 * used.
 */
export interface LangAccessibilityAnnounceNewDataOptions {
    newDataAnnounce?: string;
    newPointAnnounceMultiple?: string;
    newPointAnnounceSingle?: string;
    newSeriesAnnounceMultiple?: string;
    newSeriesAnnounceSingle?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Axis description format strings.
 */
export interface LangAccessibilityAxisOptions {
    rangeCategories?: string;
    rangeFromTo?: string;
    timeRangeDays?: string;
    timeRangeHours?: string;
    timeRangeMinutes?: string;
    timeRangeSeconds?: string;
    xAxisDescriptionPlural?: string;
    xAxisDescriptionSingular?: string;
    yAxisDescriptionPlural?: string;
    yAxisDescriptionSingular?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Chart type description strings. This
 * is added to the chart information region.
 *
 * If there is only a single series type used in the chart, we use the format
 * string for the series type, or default if missing. There is one format string
 * for cases where there is only a single series in the chart, and one for
 * multiple series of the same type.
 */
export interface LangAccessibilityChartTypesOptions {
    barMultiple?: string;
    barSingle?: string;
    boxplotMultiple?: string;
    boxplotSingle?: string;
    bubbleMultiple?: string;
    bubbleSingle?: string;
    columnMultiple?: string;
    columnSingle?: string;
    combinationChart?: string;
    defaultMultiple?: string;
    defaultSingle?: string;
    emptyChart?: string;
    lineMultiple?: string;
    lineSingle?: string;
    mapTypeDescription?: string;
    pieMultiple?: string;
    pieSingle?: string;
    scatterMultiple?: string;
    scatterSingle?: string;
    splineMultiple?: string;
    splineSingle?: string;
    unknownMap?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Exporting menu format strings for
 * accessibility module.
 */
export interface LangAccessibilityExportingOptions {
    chartMenuLabel?: string;
    exportRegionLabel?: string;
    menuButtonLabel?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Language options for accessibility
 * of the legend.
 */
export interface LangAccessibilityLegendOptions {
    legendItem?: string;
    legendLabel?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Configure the accessibility strings
 * in the chart. Requires the accessibility module to be loaded. For a
 * description of the module and information on its features, see Highcharts
 * Accessibility.
 *
 * For more dynamic control over the accessibility functionality, see
 * accessibility.pointDescriptionFormatter,
 * accessibility.seriesDescriptionFormatter, and
 * accessibility.screenReaderSectionFormatter.
 */
export interface LangAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Default announcement for new
     * data in charts. If addPoint or addSeries is used, and only one
     * series/point is added, the `newPointAnnounce` and `newSeriesAnnounce`
     * strings are used. The `...Single` versions will be used if there is only
     * one chart on the page, and the `...Multiple` versions will be used if
     * there are multiple charts on the page. For all other new data events, the
     * `newDataAnnounce` string will be used.
     */
    announceNewData?: LangAccessibilityAnnounceNewDataOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Axis description format strings.
     */
    axis?: LangAccessibilityAxisOptions;
    chartContainerLabel?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Chart type description strings.
     * This is added to the chart information region.
     *
     * If there is only a single series type used in the chart, we use the
     * format string for the series type, or default if missing. There is one
     * format string for cases where there is only a single series in the chart,
     * and one for multiple series of the same type.
     */
    chartTypes?: LangAccessibilityChartTypesOptions;
    credits?: string;
    defaultChartTitle?: string;
    drillUpButton?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting menu format strings
     * for accessibility module.
     */
    exporting?: LangAccessibilityExportingOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set a label on the container
     * wrapping the SVG.
     */
    graphicContainerLabel?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Language options for
     * accessibility of the legend.
     */
    legend?: LangAccessibilityLegendOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Range selector language options
     * for accessibility.
     */
    rangeSelector?: LangAccessibilityRangeSelectorOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Language options for the screen
     * reader information sections added before and after the charts.
     */
    screenReaderSection?: LangAccessibilityScreenReaderSectionOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Lang configuration for different
     * series types. For more dynamic control over the series element
     * descriptions, see accessibility.seriesDescriptionFormatter.
     */
    series?: LangAccessibilitySeriesOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Descriptions of lesser known
     * series types. The relevant description is added to the screen reader
     * information region when these series types are used.
     */
    seriesTypeDescriptions?: LangAccessibilitySeriesTypeDescriptionsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Language options for
     * sonification.
     */
    sonification?: LangAccessibilitySonificationOptions;
    svgContainerLabel?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Title element text for the chart
     * SVG element. Leave this empty to disable adding the title element.
     * Browsers will display this content when hovering over elements in the
     * chart. Assistive technology may use this element to label the chart.
     */
    svgContainerTitle?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility language options
     * for the data table.
     */
    table?: LangAccessibilityTableOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Thousands separator to use when
     * formatting numbers for screen readers. Note that many screen readers will
     * not handle space as a thousands separator, and will consider "11 700" as
     * two numbers.
     *
     * Set to `null` to use the separator defined in lang.thousandsSep.
     */
    thousandsSep?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Chart and map zoom accessibility
     * language options.
     */
    zoom?: LangAccessibilityZoomOptions;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Range selector language options for
 * accessibility.
 */
export interface LangAccessibilityRangeSelectorOptions {
    buttonText?: string;
    maxInputLabel?: string;
    minInputLabel?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Language options for annotation
 * descriptions.
 */
export interface LangAccessibilityScreenReaderSectionAnnotationsOptions {
    descriptionMultiplePoints?: string;
    descriptionNoPoints?: string;
    descriptionSinglePoint?: string;
    heading?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Language options for the screen
 * reader information sections added before and after the charts.
 */
export interface LangAccessibilityScreenReaderSectionOptions {
    afterRegionLabel?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Language options for annotation
     * descriptions.
     */
    annotations?: LangAccessibilityScreenReaderSectionAnnotationsOptions;
    beforeRegionLabel?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Label for the end of the chart.
     * Announced by screen readers.
     */
    endOfChartMarker?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Lang configuration for different
 * series types. For more dynamic control over the series element descriptions,
 * see accessibility.seriesDescriptionFormatter.
 */
export interface LangAccessibilitySeriesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) User supplied description text.
     * This is added in the point comment description by default if present.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Description for the value of
     * null points.
     */
    nullPointValue?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Description for annotations on a
     * point, as it is made available to assistive technology.
     */
    pointAnnotationsDescription?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Lang configuration for the
     * series main summary. Each series type has two modes:
     *
     * 1. This series type is the only series type used in the chart
     *
     * 2. This is a combination chart with multiple series types
     *
     * If a definition does not exist for the specific series type and mode, the
     * 'default' lang definitions are used.
     */
    summary?: LangAccessibilitySeriesSummaryOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) xAxis description for series if
     * there are multiple xAxes in the chart.
     */
    xAxisDescription?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) yAxis description for series if
     * there are multiple yAxes in the chart.
     */
    yAxisDescription?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Lang configuration for the series
 * main summary. Each series type has two modes:
 *
 * 1. This series type is the only series type used in the chart
 *
 * 2. This is a combination chart with multiple series types
 *
 * If a definition does not exist for the specific series type and mode, the
 * 'default' lang definitions are used.
 */
export interface LangAccessibilitySeriesSummaryOptions {
    bar?: string;
    barCombination?: string;
    boxplot?: string;
    boxplotCombination?: string;
    bubble?: string;
    bubbleCombination?: string;
    column?: string;
    columnCombination?: string;
    default?: string;
    defaultCombination?: string;
    line?: string;
    lineCombination?: string;
    map?: string;
    mapbubble?: string;
    mapbubbleCombination?: string;
    mapCombination?: string;
    mapline?: string;
    maplineCombination?: string;
    pie?: string;
    pieCombination?: string;
    scatter?: string;
    scatterCombination?: string;
    spline?: string;
    splineCombination?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Descriptions of lesser known series
 * types. The relevant description is added to the screen reader information
 * region when these series types are used.
 */
export interface LangAccessibilitySeriesTypeDescriptionsOptions {
    arearange?: string;
    areasplinerange?: string;
    boxplot?: string;
    bubble?: string;
    columnrange?: string;
    errorbar?: string;
    funnel?: string;
    pyramid?: string;
    waterfall?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Language options for sonification.
 */
export interface LangAccessibilitySonificationOptions {
    playAsSoundButtonText?: string;
    playAsSoundClickAnnouncement?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Accessibility language options for
 * the data table.
 */
export interface LangAccessibilityTableOptions {
    tableSummary?: string;
    viewAsDataTableButtonText?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Chart and map zoom accessibility
 * language options.
 */
export interface LangAccessibilityZoomOptions {
    mapZoomIn?: string;
    mapZoomOut?: string;
    resetZoomButton?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The text for exported table.
 */
export interface LangExportDataOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The annotation column title.
     */
    annotationHeader?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The category column title when
     * axis type set to "datetime".
     */
    categoryDatetimeHeader?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The category column title.
     */
    categoryHeader?: string;
}
/**
 * (Highcharts, Highstock) Configure the Popup strings in the chart. Requires
 * the `annotations.js` or `annotations-advanced.src.js` module to be loaded.
 */
export interface LangNavigationOptions {
    /**
     * (Highcharts, Highstock) Translations for all field names used in popup.
     */
    popup?: LangNavigationPopupOptions;
}
/**
 * (Highcharts, Highstock) Translations for all field names used in popup.
 */
export interface LangNavigationPopupOptions {
    addButton?: string;
    arrowLine?: string;
    arrowRay?: string;
    arrowSegment?: string;
    background?: string;
    backgroundColor?: string;
    backgroundColors?: string;
    borderColor?: string;
    borderRadius?: string;
    borderWidth?: string;
    circle?: string;
    color?: string;
    connector?: string;
    crooked3?: string;
    crooked5?: string;
    crosshairX?: string;
    crosshairY?: string;
    editButton?: string;
    elliott3?: string;
    elliott5?: string;
    fibonacci?: string;
    fill?: string;
    flags?: string;
    fontSize?: string;
    format?: string;
    height?: string;
    horizontalLine?: string;
    infinityLine?: string;
    innerBackground?: string;
    label?: string;
    labelOptions?: string;
    labels?: string;
    line?: string;
    lines?: string;
    measure?: string;
    measureX?: string;
    measureXY?: string;
    measureY?: string;
    name?: string;
    outerBackground?: string;
    padding?: string;
    parallelChannel?: string;
    pitchfork?: string;
    ray?: string;
    rectangle?: string;
    removeButton?: string;
    saveButton?: string;
    segment?: string;
    series?: string;
    shapeOptions?: string;
    shapes?: string;
    simpleShapes?: string;
    stroke?: string;
    strokeWidth?: string;
    style?: string;
    title?: string;
    tunnel?: string;
    typeOptions?: string;
    verticalArrow?: string;
    verticalCounter?: string;
    verticalLabel?: string;
    verticalLine?: string;
    volume?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Language object. The language object
 * is global and it can't be set on each chart initialization. Instead, use
 * `Highcharts.setOptions` to set it before any chart is initialized. (see
 * online documentation for example)
 */
export interface LangOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Configure the accessibility
     * strings in the chart. Requires the accessibility module to be loaded. For
     * a description of the module and information on its features, see
     * Highcharts Accessibility.
     *
     * For more dynamic control over the accessibility functionality, see
     * accessibility.pointDescriptionFormatter,
     * accessibility.seriesDescriptionFormatter, and
     * accessibility.screenReaderSectionFormatter.
     */
    accessibility?: LangAccessibilityOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module menu. The
     * tooltip title for the context menu holding print and export menu items.
     */
    contextButtonTitle?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The default decimal point used
     * in the `Highcharts.numberFormat` method unless otherwise specified in the
     * function arguments.
     */
    decimalPoint?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text for the menu item.
     */
    downloadCSV?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module only. The text
     * for the JPEG download menu item.
     */
    downloadJPEG?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module only. The text
     * for the PDF download menu item.
     */
    downloadPDF?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module only. The text
     * for the PNG download menu item.
     */
    downloadPNG?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module only. The text
     * for the SVG download menu item.
     */
    downloadSVG?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text for the menu item.
     */
    downloadXLS?: string;
    /**
     * (Highcharts, Highmaps) The text for the button that appears when drilling
     * down, linking back to the parent series. The parent series' name is
     * inserted for `{series.name}`.
     */
    drillUpText?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module only. The text
     * for the menu item to exit the chart from full screen.
     */
    exitFullscreen?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text for exported table.
     */
    exportData?: LangExportDataOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text for the menu item.
     */
    hideData?: string;
    /**
     * (Highcharts, Highstock) What to show in a date field for invalid dates.
     * Defaults to an empty string.
     */
    invalidDate?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The loading text that appears
     * when the chart is set into the loading state following a call to
     * `chart.showLoading`.
     */
    loading?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array containing the months
     * names. Corresponds to the `%B` format in `Highcharts.dateFormat()`.
     */
    months?: Array<string>;
    /**
     * (Highcharts, Highstock) Configure the Popup strings in the chart.
     * Requires the `annotations.js` or `annotations-advanced.src.js` module to
     * be loaded.
     */
    navigation?: LangNavigationOptions;
    /**
     * (Highcharts, Highstock) The text to display when the chart contains no
     * data.
     */
    noData?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The magnitude of numericSymbols
     * replacements. Use 10000 for Japanese, Korean and various Chinese locales,
     * which use symbols for 10^4, 10^8 and 10^12.
     */
    numericSymbolMagnitude?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Metric prefixes used to shorten
     * high numbers in axis labels. Replacing any of the positions with `null`
     * causes the full number to be written. Setting `numericSymbols` to `null`
     * disables shortening altogether.
     */
    numericSymbols?: Array<string>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module only. The text
     * for the menu item to print the chart.
     */
    printChart?: string;
    /**
     * (Highstock, Gantt) The text for the label for the "from" input box in the
     * range selector.
     */
    rangeSelectorFrom?: string;
    /**
     * (Highstock, Gantt) The text for the label for the "to" input box in the
     * range selector.
     */
    rangeSelectorTo?: string;
    /**
     * (Highstock, Gantt) The text for the label for the range selector buttons.
     */
    rangeSelectorZoom?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text for the label appearing
     * when a chart is zoomed.
     */
    resetZoom?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The tooltip title for the label
     * appearing when a chart is zoomed.
     */
    resetZoomTitle?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array containing the months
     * names in abbreviated form. Corresponds to the `%b` format in
     * `Highcharts.dateFormat()`.
     */
    shortMonths?: Array<string>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Short week days, starting
     * Sunday. If not specified, Highcharts uses the first three letters of the
     * `lang.weekdays` option.
     */
    shortWeekdays?: Array<string>;
    /**
     * (Highstock) Configure the stockTools GUI titles(hints) in the chart.
     * Requires the `stock-tools.js` module to be loaded.
     */
    stockTools?: LangStockToolsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The default thousands separator
     * used in the `Highcharts.numberFormat` method unless otherwise specified
     * in the function arguments. Defaults to a single space character, which is
     * recommended in ISO 31-0 and works across Anglo-American and continental
     * European languages.
     */
    thousandsSep?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text for the menu item.
     */
    viewData?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Exporting module only. The text
     * for the menu item to view the chart in full screen.
     */
    viewFullscreen?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array containing the weekday
     * names.
     */
    weekdays?: Array<string>;
    /**
     * (Highmaps) The title appearing on hovering the zoom in button. The text
     * itself defaults to "+" and can be changed in the button options.
     */
    zoomIn?: string;
    /**
     * (Highmaps) The title appearing on hovering the zoom out button. The text
     * itself defaults to "-" and can be changed in the button options.
     */
    zoomOut?: string;
}
export interface LangStockToolsGuiOptions {
    advanced?: string;
    arrowLine?: string;
    arrowRay?: string;
    arrowSegment?: string;
    circle?: string;
    crooked3?: string;
    crooked5?: string;
    crookedLines?: string;
    currentPriceIndicator?: string;
    elliott3?: string;
    elliott5?: string;
    fibonacci?: string;
    flagCirclepin?: string;
    flagDiamondpin?: string;
    flags?: string;
    flagSimplepin?: string;
    flagSquarepin?: string;
    fullScreen?: string;
    horizontalLine?: string;
    indicators?: string;
    infinityLine?: string;
    label?: string;
    line?: string;
    lines?: string;
    measure?: string;
    measureX?: string;
    measureXY?: string;
    measureY?: string;
    parallelChannel?: string;
    pitchfork?: string;
    ray?: string;
    rectangle?: string;
    saveChart?: string;
    segment?: string;
    simpleShapes?: string;
    toggleAnnotations?: string;
    typeCandlestick?: string;
    typeChange?: string;
    typeLine?: string;
    typeOHLC?: string;
    verticalArrow?: string;
    verticalCounter?: string;
    verticalLabel?: string;
    verticalLabels?: string;
    verticalLine?: string;
    zoomChange?: string;
    zoomX?: string;
    zoomXY?: string;
    zoomY?: string;
}
/**
 * (Highstock) Configure the stockTools GUI titles(hints) in the chart. Requires
 * the `stock-tools.js` module to be loaded.
 */
export interface LangStockToolsOptions {
    gui?: LangStockToolsGuiOptions;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for keyboard navigation for
 * the legend.
 */
export interface LegendAccessibilityKeyboardNavigationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable keyboard navigation for
     * the legend.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for the
 * legend. Requires the Accessibility module.
 */
export interface LegendAccessibilityOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable accessibility support for
     * the legend.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for keyboard navigation
     * for the legend.
     */
    keyboardNavigation?: LegendAccessibilityKeyboardNavigationOptions;
}
/**
 * (Highcharts, Highstock, Highmaps) Options for the bubble legend labels.
 */
export interface LegendBubbleLegendLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps) The alignment of the labels compared to
     * the bubble legend. Can be one of `left`, `center` or `right`.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps) Whether to allow data labels to
     * overlap.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) An additional class name to apply to
     * the bubble legend label graphical elements. This option does not replace
     * default class names of the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps) A format string for the bubble legend
     * labels. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps) Available `this` properties are:
     *
     * - `this.value`: The bubble value.
     *
     * - `this.radius`: The radius of the bubble range.
     *
     * - `this.center`: The center y position of the range.
     */
    formatter?: FormatterCallbackFunction<BubbleLegendFormatterContextObject>;
    /**
     * (Highcharts, Highstock, Highmaps) CSS styles for the labels.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps) The x position offset of the label
     * relative to the connector.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The y position offset of the label
     * relative to the connector.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps) The bubble legend is an additional element
 * in legend which presents the scale of the bubble series. Individual bubble
 * ranges can be defined by user or calculated from series. In the case of
 * automatically calculated ranges, a 1px margin of error is permitted.
 */
export interface LegendBubbleLegendOptions {
    /**
     * (Highcharts, Highstock, Highmaps) The color of the ranges borders, can be
     * also defined for an individual range.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) The width of the ranges borders in
     * pixels, can be also defined for an individual range.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps) An additional class name to apply to
     * the bubble legend' circle graphical elements. This option does not
     * replace default class names of the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps) The main color of the bubble legend.
     * Applies to ranges, if individual color is not defined.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) An additional class name to apply to
     * the bubble legend's connector graphical elements. This option does not
     * replace default class names of the graphical element.
     */
    connectorClassName?: string;
    /**
     * (Highcharts, Highstock, Highmaps) The color of the connector, can be also
     * defined for an individual range.
     */
    connectorColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) The length of the connectors in pixels.
     * If labels are centered, the distance is reduced to 0.
     */
    connectorDistance?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The width of the connectors in pixels.
     */
    connectorWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Enable or disable the bubble legend.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) Options for the bubble legend labels.
     */
    labels?: LegendBubbleLegendLabelsOptions;
    /**
     * (Highcharts, Highstock, Highmaps) The position of the bubble legend in
     * the legend.
     */
    legendIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Miximum bubble legend range size. If
     * values for ranges are not specified, the `minSize` and the `maxSize` are
     * calculated from bubble series.
     */
    maxSize?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Minimum bubble legend range size. If
     * values for ranges are not specified, the `minSize` and the `maxSize` are
     * calculated from bubble series.
     */
    minSize?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Options for specific range. One range
     * consists of bubble, label and connector.
     */
    ranges?: Array<LegendBubbleLegendRangesOptions>;
    /**
     * (Highcharts, Highstock, Highmaps) Whether the bubble legend range value
     * should be represented by the area or the width of the bubble. The
     * default, area, corresponds best to the human perception of the size of
     * each bubble.
     */
    sizeBy?: BubbleSizeByValue;
    /**
     * (Highcharts, Highstock, Highmaps) When this is true, the absolute value
     * of z determines the size of the bubble. This means that with the default
     * zThreshold of 0, a bubble of value -1 will have the same size as a bubble
     * of value 1, while a bubble of value 0 will have a smaller size according
     * to minSize.
     */
    sizeByAbsoluteValue?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps) Define the visual z index of the bubble
     * legend.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Ranges with with lower value than
     * zThreshold, are skipped.
     */
    zThreshold?: number;
}
/**
 * (Highcharts, Highstock, Highmaps) Options for specific range. One range
 * consists of bubble, label and connector.
 */
export interface LegendBubbleLegendRangesOptions {
    /**
     * (Highcharts, Highstock, Highmaps) The color of the border for individual
     * range.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) The color of the bubble for individual
     * range.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) The color of the connector for
     * individual range.
     */
    connectorColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) Range size value, similar to bubble Z
     * data.
     */
    value?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the paging or navigation
 * appearing when the legend is overflown. Navigation works well on screen, but
 * not in static exported images. One way of working around that is to increase
 * the chart height in export.
 */
export interface LegendNavigationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color for the active up or
     * down arrow in the legend page navigation.
     */
    activeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to animate the pages when
     * navigating up or down. A value of `true` applies the default navigation
     * given in the `chart.animation` option. Additional options can be given as
     * an object containing values for easing and duration.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel size of the up and
     * down arrows in the legend paging navigation.
     */
    arrowSize?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to enable the legend
     * navigation. In most cases, disabling the navigation results in an
     * unwanted overflow.
     *
     * See also the adapt chart to legend plugin for a solution to extend the
     * chart height to make room for the legend, optionally in exported charts
     * only.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the inactive up or
     * down arrow in the legend page navigation. .
     */
    inactiveColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text styles for the legend page
     * navigation.
     */
    style?: CSSObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The legend is a box containing a
 * symbol and name for each series item or point item in the chart. Each series
 * (or points in case of pie charts) is represented by a symbol and its name in
 * the legend.
 *
 * It is possible to override the symbol creator function and create custom
 * legend symbols.
 */
export interface LegendOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for the
     * legend. Requires the Accessibility module.
     */
    accessibility?: LegendAccessibilityOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The horizontal alignment of the
     * legend box within the chart area. Valid values are `left`, `center` and
     * `right`.
     *
     * In the case that the legend is aligned in a corner position, the `layout`
     * option will determine whether to place it above/below or on the side of
     * the plot area.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If the layout is `horizontal`
     * and the legend items span over two lines or more, whether to align the
     * items into vertical columns. Setting this to `false` makes room for more
     * items, but will look more messy.
     */
    alignColumns?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color of the
     * legend.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the drawn border
     * around the legend.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border corner radius of the
     * legend.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the drawn border
     * around the legend.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps) The bubble legend is an additional
     * element in legend which presents the scale of the bubble series.
     * Individual bubble ranges can be defined by user or calculated from
     * series. In the case of automatically calculated ranges, a 1px margin of
     * error is permitted.
     */
    bubbleLegend?: LegendBubbleLegendOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the legend.
     * There is also a series-specific option, showInLegend, that can hide the
     * series from the legend. In some series types this is `false` by default,
     * so it must set to `true` in order to show the legend for the series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When the legend is floating, the
     * plot area ignores it and is allowed to be placed below it.
     */
    floating?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Default styling for the checkbox
     * next to a legend item when `showCheckbox` is true.
     */
    itemCheckboxStyle?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) In a legend with horizontal
     * layout, the itemDistance defines the pixel distance between each item.
     */
    itemDistance?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for each legend item
     * when the corresponding series or point is hidden. Only a subset of CSS is
     * supported, notably those options related to text. Properties are
     * inherited from `style` unless overridden here.
     */
    itemHiddenStyle?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for each legend item
     * in hover mode. Only a subset of CSS is supported, notably those options
     * related to text. Properties are inherited from `style` unless overridden
     * here.
     */
    itemHoverStyle?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel bottom margin for each
     * legend item.
     */
    itemMarginBottom?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel top margin for each
     * legend item.
     */
    itemMarginTop?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for each legend item.
     * Only a subset of CSS is supported, notably those options related to text.
     * The default `textOverflow` property makes long texts truncate. Set it to
     * `undefined` to wrap text instead. A `width` property can be added to
     * control the text width.
     */
    itemStyle?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width for each legend item.
     * By default the items are laid out successively. In a horizontal layout,
     * if the items are laid out across two rows or more, they will be
     * vertically aligned depending on the legend.alignColumns option.
     */
    itemWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for each legend
     * label. Available variables relates to properties on the series, or the
     * point in case of pies.
     */
    labelFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback function to format each
     * of the series' labels. The `this` keyword refers to the series object, or
     * the point object in case of pie charts. By default the series or point
     * name is printed.
     */
    labelFormatter?: FormatterCallbackFunction<(Point|Series)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The layout of the legend items.
     * Can be one of `horizontal` or `vertical` or `proximate`. When
     * `proximate`, the legend items will be placed as close as possible to the
     * graphs they're representing, except in inverted charts or when the legend
     * position doesn't allow it.
     */
    layout?: OptionsLayoutValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If the plot area sized is
     * calculated automatically and the legend is not floating, the legend
     * margin is the space between the legend and the axis labels or plot area.
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Maximum pixel height for the
     * legend. When the maximum height is extended, navigation will show.
     */
    maxHeight?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the paging or
     * navigation appearing when the legend is overflown. Navigation works well
     * on screen, but not in static exported images. One way of working around
     * that is to increase the chart height in export.
     */
    navigation?: LegendNavigationOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The inner padding of the legend
     * box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to reverse the order of
     * the legend items compared to the order of the series or points as defined
     * in the configuration object.
     */
    reversed?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to show the symbol on
     * the right side of the text rather than the left side. This is common in
     * Arabic and Hebraic.
     */
    rtl?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to apply a drop shadow
     * to the legend. A `backgroundColor` also needs to be applied for this to
     * take effect. The shadow can be an object configuration containing
     * `color`, `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|CSSObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When this is true, the legend
     * symbol width will be the same as the symbol height, which in turn
     * defaults to the font size of the legend items.
     */
    squareSymbol?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel height of the symbol
     * for series types that use a rectangle in the legend. Defaults to the font
     * size of legend items.
     */
    symbolHeight?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel padding between the
     * legend item symbol and the legend item text.
     */
    symbolPadding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius of the symbol
     * for series types that use a rectangle in the legend. Defaults to half the
     * `symbolHeight`.
     */
    symbolRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the legend
     * item symbol. When the `squareSymbol` option is set, this defaults to the
     * `symbolHeight`, otherwise 16.
     */
    symbolWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A title to be added on top of
     * the legend.
     */
    title?: LegendTitleOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the legend item texts.
     *
     * Prior to 4.1.7, when using HTML, legend.navigation was disabled.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * legend box. Can be one of `top`, `middle` or `bottom`. Vertical position
     * can be further determined by the `y` option.
     *
     * In the case that the legend is aligned in a corner position, the `layout`
     * option will determine whether to place it above/below or on the side of
     * the plot area.
     *
     * When the layout option is `proximate`, the `verticalAlign` option doesn't
     * apply.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the legend box. If
     * a number is set, it translates to pixels. Since v7.0.2 it allows setting
     * a percent string of the full chart width, for example `40%`.
     *
     * Defaults to the full chart width for legends below or above the chart,
     * half the chart width for legends to the left and right.
     */
    width?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x offset of the legend
     * relative to its horizontal alignment `align` within chart.spacingLeft and
     * chart.spacingRight. Negative x moves it to the left, positive x moves it
     * to the right.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical offset of the
     * legend relative to it's vertical alignment `verticalAlign` within
     * chart.spacingTop and chart.spacingBottom. Negative y moves it up,
     * positive y moves it down.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) A title to be added on top of the
 * legend.
 */
export interface LegendTitleOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Generic CSS styles for the
     * legend title.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A text or HTML string for the
     * title.
     */
    text?: string;
}
/**
 * Defines the start position and the end position for a gradient relative to
 * the shape. Start position (x1, y1) and end position (x2, y2) are relative to
 * the shape, where 0 means top/left and 1 is bottom/right.
 */
export interface LinearGradientColorObject {
    /**
     * Start horizontal position of the gradient. Float ranges 0-1.
     */
    x1: number;
    /**
     * End horizontal position of the gradient. Float ranges 0-1.
     */
    x2: number;
    /**
     * Start vertical position of the gradient. Float ranges 0-1.
     */
    y1: number;
    /**
     * End vertical position of the gradient. Float ranges 0-1.
     */
    y2: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The loading options control the
 * appearance of the loading screen that covers the plot area on chart
 * operations. This screen only appears after an explicit call to
 * `chart.showLoading()`. It is a utility for developers to communicate to the
 * end user that something is going on, for example while retrieving new data
 * via an XHR connection. The "Loading..." text itself is not part of this
 * configuration object, but part of the `lang` object.
 */
export interface LoadingOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The duration in milliseconds of
     * the fade out effect.
     */
    hideDuration?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the loading label
     * `span`.
     */
    labelStyle?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The duration in milliseconds of
     * the fade in effect.
     */
    showDuration?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the loading
     * screen that covers the plot area.
     *
     * In styled mode, the loading label is styled with the
     * `.highcharts-loading` class.
     */
    style?: CSSObject;
}
/**
 * (Highmaps) General options for the map navigation buttons. Individual options
 * can be given from the mapNavigation.buttons option set.
 */
export interface MapNavigationButtonOptions {
    /**
     * (Highmaps) The alignment of the navigation buttons.
     */
    align?: AlignValue;
    /**
     * (Highmaps) What box to align the buttons to. Possible values are
     * `plotBox` and `spacingBox`.
     */
    alignTo?: ButtonRelativeToValue;
    /**
     * (Highmaps) The pixel height of the map navigation buttons.
     */
    height?: number;
    /**
     * (Highmaps) Padding for the navigation buttons.
     */
    padding?: number;
    /**
     * (Highmaps) Text styles for the map navigation buttons.
     */
    style?: CSSObject;
    /**
     * (Highmaps) A configuration object for the button theme. The object
     * accepts SVG properties like `stroke-width`, `stroke` and `fill`.
     * Tri-state button styles are supported by the `states.hover` and
     * `states.select` objects.
     */
    theme?: SVGAttributes;
    /**
     * (Highmaps) The vertical alignment of the buttons. Individual alignment
     * can be adjusted by each button's `y` offset.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highmaps) The width of the map navigation buttons.
     */
    width?: number;
    /**
     * (Highmaps) The X offset of the buttons relative to its `align` setting.
     */
    x?: number;
}
/**
 * (Highmaps) The individual buttons for the map navigation. This usually
 * includes the zoom in and zoom out buttons. Properties for each button is
 * inherited from mapNavigation.buttonOptions, while individual options can be
 * overridden. But default, the `onclick`, `text` and `y` options are
 * individual.
 */
export interface MapNavigationButtonsOptions {
    /**
     * (Highmaps) Options for the zoom in button. Properties for the zoom in and
     * zoom out buttons are inherited from mapNavigation.buttonOptions, while
     * individual options can be overridden. By default, the `onclick`, `text`
     * and `y` options are individual.
     */
    zoomIn?: MapNavigationButtonsZoomInOptions;
    /**
     * (Highmaps) Options for the zoom out button. Properties for the zoom in
     * and zoom out buttons are inherited from mapNavigation.buttonOptions,
     * while individual options can be overridden. By default, the `onclick`,
     * `text` and `y` options are individual.
     */
    zoomOut?: MapNavigationButtonsZoomOutOptions;
}
/**
 * (Highmaps) Options for the zoom in button. Properties for the zoom in and
 * zoom out buttons are inherited from mapNavigation.buttonOptions, while
 * individual options can be overridden. By default, the `onclick`, `text` and
 * `y` options are individual.
 */
export interface MapNavigationButtonsZoomInOptions {
    /**
     * (Highmaps) The alignment of the navigation buttons.
     */
    align?: AlignValue;
    /**
     * (Highmaps) What box to align the buttons to. Possible values are
     * `plotBox` and `spacingBox`.
     */
    alignTo?: ButtonRelativeToValue;
    /**
     * (Highmaps) The pixel height of the map navigation buttons.
     */
    height?: number;
    /**
     * (Highmaps) Click handler for the button.
     */
    onclick?: Function;
    /**
     * (Highmaps) Padding for the navigation buttons.
     */
    padding?: number;
    /**
     * (Highmaps) Text styles for the map navigation buttons.
     */
    style?: CSSObject;
    /**
     * (Highmaps) The text for the button. The tooltip (title) is a language
     * option given by lang.zoomIn.
     */
    text?: string;
    /**
     * (Highmaps) A configuration object for the button theme. The object
     * accepts SVG properties like `stroke-width`, `stroke` and `fill`.
     * Tri-state button styles are supported by the `states.hover` and
     * `states.select` objects.
     */
    theme?: SVGAttributes;
    /**
     * (Highmaps) The vertical alignment of the buttons. Individual alignment
     * can be adjusted by each button's `y` offset.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highmaps) The width of the map navigation buttons.
     */
    width?: number;
    /**
     * (Highmaps) The X offset of the buttons relative to its `align` setting.
     */
    x?: number;
    /**
     * (Highmaps) The position of the zoomIn button relative to the vertical
     * alignment.
     */
    y?: number;
}
/**
 * (Highmaps) Options for the zoom out button. Properties for the zoom in and
 * zoom out buttons are inherited from mapNavigation.buttonOptions, while
 * individual options can be overridden. By default, the `onclick`, `text` and
 * `y` options are individual.
 */
export interface MapNavigationButtonsZoomOutOptions {
    /**
     * (Highmaps) The alignment of the navigation buttons.
     */
    align?: AlignValue;
    /**
     * (Highmaps) What box to align the buttons to. Possible values are
     * `plotBox` and `spacingBox`.
     */
    alignTo?: ButtonRelativeToValue;
    /**
     * (Highmaps) The pixel height of the map navigation buttons.
     */
    height?: number;
    /**
     * (Highmaps) Click handler for the button.
     */
    onclick?: Function;
    /**
     * (Highmaps) Padding for the navigation buttons.
     */
    padding?: number;
    /**
     * (Highmaps) Text styles for the map navigation buttons.
     */
    style?: CSSObject;
    /**
     * (Highmaps) The text for the button. The tooltip (title) is a language
     * option given by lang.zoomOut.
     */
    text?: string;
    /**
     * (Highmaps) A configuration object for the button theme. The object
     * accepts SVG properties like `stroke-width`, `stroke` and `fill`.
     * Tri-state button styles are supported by the `states.hover` and
     * `states.select` objects.
     */
    theme?: SVGAttributes;
    /**
     * (Highmaps) The vertical alignment of the buttons. Individual alignment
     * can be adjusted by each button's `y` offset.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highmaps) The width of the map navigation buttons.
     */
    width?: number;
    /**
     * (Highmaps) The X offset of the buttons relative to its `align` setting.
     */
    x?: number;
    /**
     * (Highmaps) The position of the zoomOut button relative to the vertical
     * alignment.
     */
    y?: number;
}
export interface MapNavigationOptions {
    /**
     * (Highmaps) General options for the map navigation buttons. Individual
     * options can be given from the mapNavigation.buttons option set.
     */
    buttonOptions?: MapNavigationButtonOptions;
    /**
     * (Highmaps) The individual buttons for the map navigation. This usually
     * includes the zoom in and zoom out buttons. Properties for each button is
     * inherited from mapNavigation.buttonOptions, while individual options can
     * be overridden. But default, the `onclick`, `text` and `y` options are
     * individual.
     */
    buttons?: MapNavigationButtonsOptions;
    /**
     * (Highmaps) Whether to enable navigation buttons. By default it inherits
     * the enabled setting.
     */
    enableButtons?: boolean;
    /**
     * (Highmaps) Whether to enable map navigation. The default is not to enable
     * navigation, as many choropleth maps are simple and don't need it.
     * Additionally, when touch zoom and mousewheel zoom is enabled, it breaks
     * the default behaviour of these interactions in the website, and the
     * implementer should be aware of this.
     *
     * Individual interactions can be enabled separately, namely buttons,
     * multitouch zoom, double click zoom, double click zoom to element and
     * mousewheel zoom.
     */
    enabled?: boolean;
    /**
     * (Highmaps) Enables zooming in on an area on double clicking in the map.
     * By default it inherits the enabled setting.
     */
    enableDoubleClickZoom?: boolean;
    /**
     * (Highmaps) Whether to zoom in on an area when that area is double
     * clicked.
     */
    enableDoubleClickZoomTo?: boolean;
    /**
     * (Highmaps) Enables zooming by mouse wheel. By default it inherits the
     * enabled setting.
     */
    enableMouseWheelZoom?: boolean;
    /**
     * (Highmaps) Whether to enable multitouch zooming. Note that if the chart
     * covers the viewport, this prevents the user from using multitouch and
     * touchdrag on the web page, so you should make sure the user is not
     * trapped inside the chart. By default it inherits the enabled setting.
     */
    enableTouchZoom?: boolean;
    /**
     * (Highmaps) Sensitivity of mouse wheel or trackpad scrolling. 1 is no
     * sensitivity, while with 2, one mousewheel delta will zoom in 50%.
     */
    mouseWheelSensitivity?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `annotation`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface NavigationAnnotationsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders annotation immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Events available in annotations.
 */
export interface NavigationAnnotationsEventsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event callback when annotation
     * is added to the chart.
     */
    add?: EventCallbackFunction<Annotation>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event callback when annotation
     * is updated (e.g. drag and droppped or resized by control points).
     */
    afterUpdate?: EventCallbackFunction<Annotation>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event callback when annotation
     * is removed from the chart.
     */
    remove?: EventCallbackFunction<Annotation>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's labels.
 * Each label inherits options from the labelOptions object. An option from the
 * labelOptions can be overwritten by config for a specific label.
 */
export interface NavigationAnnotationsLabelOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for an
     * annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the
     * annotation's label. If right, the right side of the label should be
     * touching the point.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow the
     * annotation's labels to overlap. To make the labels less sensitive for
     * overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the
     * annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide the annotation's
     * label that is outside the plot area.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The label's pixel distance from
     * the point.
     */
    distance?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the annotation's label. Note that if a `format` or `text` are
     * defined, the format or text take precedence and the formatter is ignored.
     * `This` refers to a point object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the annotation is
     * visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle the annotation's
     * label that flow outside the plot area. The justify option aligns the
     * label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the borderWidth or
     * the backgroundColor is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. The
     * shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the annotation's
     * label.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alias for the format option.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point. Note that if a `distance` is defined, the
     * distance takes precedence over `x` and `y` options.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point. Note that if a `distance` is defined, the
     * distance takes precedence over `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) An array of labels for the
 * annotation. For options that apply to multiple labels, they can be added to
 * the labelOptions.
 */
export interface NavigationAnnotationsLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for an
     * annotation label.
     */
    accessibility?: AnnotationLabelAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the
     * annotation's label. If right, the right side of the label should be
     * touching the point.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow the
     * annotation's labels to overlap. To make the labels less sensitive for
     * overlapping, the can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the annotation's label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the
     * annotation's label.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the annotaiton's label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the annotation's label
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for styling by CSS.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide the annotation's
     * label that is outside the plot area.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The label's pixel distance from
     * the point.
     */
    distance?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the annotation's label. Note that if a `format` or `text` are
     * defined, the format or text take precedence and the formatter is ignored.
     * `This` refers to a point object.
     */
    formatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the annotation is
     * visible in the exported data table.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle the annotation's
     * label that flow outside the plot area. The justify option aligns the
     * label inside the plot area.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the borderWidth or
     * the backgroundColor is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This option defines the point to
     * which the label will be connected. It can be either the point which
     * exists in the series - it is referenced by the point's id - or a new
     * point with defined x, y properties and optionally axes.
     */
    point?: (string|AnnotationMockPointOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. The
     * shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the annotation's
     * label.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alias for the format option.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the annotation's label.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * annotation's label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point. Note that if a `distance` is defined, the
     * distance takes precedence over `x` and `y` options.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point. Note that if a `distance` is defined, the
     * distance takes precedence over `x` and `y` options.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Additional options to be merged into
 * all annotations.
 */
export interface NavigationAnnotationsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `annotation`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|NavigationAnnotationsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's control
     * points. Each control point inherits options from controlPointOptions
     * object. Options from the controlPointOptions can be overwritten by
     * options in a specific control point.
     */
    controlPointOptions?: AnnotationControlPointOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Allow an annotation to be
     * draggable by a user. Possible values are `'x'`, `'xy'`, `'y'` and `''`
     * (disabled).
     */
    draggable?: AnnotationDraggableValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Events available in annotations.
     */
    events?: NavigationAnnotationsEventsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Sets an ID for an annotation.
     * Can be user later when removing an annotation in
     * Chart.removeAnnotation(id) method.
     */
    id?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's labels.
     * Each label inherits options from the labelOptions object. An option from
     * the labelOptions can be overwritten by config for a specific label.
     */
    labelOptions?: NavigationAnnotationsLabelOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array of labels for the
     * annotation. For options that apply to multiple labels, they can be added
     * to the labelOptions.
     */
    labels?: Array<NavigationAnnotationsLabelsOptions>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's shapes.
     * Each shape inherits options from the shapeOptions object. An option from
     * the shapeOptions can be overwritten by config for a specific shape.
     */
    shapeOptions?: NavigationAnnotationsShapeOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array of shapes for the
     * annotation. For options that apply to multiple shapes, then can be added
     * to the shapeOptions.
     */
    shapes?: Array<NavigationAnnotationsShapesOptions>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the annotation is
     * visible.
     */
    visible?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the annotation.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for annotation's shapes.
 * Each shape inherits options from the shapeOptions object. An option from the
 * shapeOptions can be overwritten by config for a specific shape.
 */
export interface NavigationAnnotationsShapeOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Name of the dash style to use
     * for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The height of the shape.
     */
    height?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The radius of the shape.
     */
    r?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Defines additional snapping area
     * around an annotation making this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The URL for an image to use as
     * the annotation shape. Note, type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel stroke width of the
     * shape.
     */
    strokeWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The type of the shape, e.g.
     * circle or rectangle.
     */
    type?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the shape.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) An array of shapes for the
 * annotation. For options that apply to multiple shapes, then can be added to
 * the shapeOptions.
 */
export interface NavigationAnnotationsShapesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Name of the dash style to use
     * for the shape's stroke.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the shape's fill.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The height of the shape.
     */
    height?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Id of the marker which will be
     * drawn at the final vertex of the path. Custom markers can be defined in
     * defs property.
     */
    markerEnd?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Id of the marker which will be
     * drawn at the first vertex of the path. Custom markers can be defined in
     * defs property.
     */
    markerStart?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This option defines the point to
     * which the shape will be connected. It can be either the point which
     * exists in the series - it is referenced by the point's id - or a new
     * point with defined x, y properties and optionally axes.
     */
    point?: (string|AnnotationMockPointOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array of points for the
     * shape. This option is available for shapes which can use multiple points
     * such as path. A point can be either a point object or a point's id.
     */
    points?: Array<(string|AnnotationMockPointOptionsObject)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The radius of the shape.
     */
    r?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Defines additional snapping area
     * around an annotation making this annotation to focus. Defined in pixels.
     */
    snap?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The URL for an image to use as
     * the annotation shape. Note, type has to be set to `'image'`.
     */
    src?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the shape's stroke.
     */
    stroke?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel stroke width of the
     * shape.
     */
    strokeWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The type of the shape, e.g.
     * circle or rectangle.
     */
    type?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the shape.
     */
    width?: number;
}
/**
 * (Highcharts, Highstock) Bindings definitions for custom HTML buttons. Each
 * binding implements simple event-driven interface:
 *
 * - `className`: classname used to bind event to
 *
 * - `init`: initial event, fired on button click
 *
 * - `start`: fired on first click on a chart
 *
 * - `steps`: array of sequential events fired one after another on each of
 * users clicks
 *
 * - `end`: last event to be called after last step event
 */
export interface NavigationBindingsOptions {
    /**
     * (Highstock) A line with arrow annotation. Includes `start` and one event
     * in `steps` array.
     */
    arrowInfinityLine?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A ray with an arrow annotation bindings. Includes `start` and
     * one event in `steps` array.
     */
    arrowRay?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A segment with an arrow annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    arrowSegment?: NavigationBindingsOptionsObject;
    /**
     * (Highcharts, Highstock) A circle annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    circleAnnotation?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Crooked line (three points) annotation bindings. Includes
     * `start` and two events in `steps` (for second and third points in crooked
     * line) array.
     */
    crooked3?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Crooked line (five points) annotation bindings. Includes
     * `start` and four events in `steps` (for all consequent points in crooked
     * line) array.
     */
    crooked5?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Hides/shows two price indicators:
     *
     * - last price in the dataset
     *
     * - last price in the selected range
     */
    currentPriceIndicator?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Elliott wave (three points) annotation bindings. Includes
     * `start` and two events in `steps` (for second and third points) array.
     */
    elliott3?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Elliott wave (five points) annotation bindings. Includes
     * `start` and four event in `steps` (for all consequent points in Elliott
     * wave) array.
     */
    elliott5?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A fibonacci annotation bindings. Includes `start` and two
     * events in `steps` array (updates second point, then height).
     */
    fibonacci?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A flag series bindings. Includes `start` event. On click,
     * finds the closest point and marks it with a flag with `'circlepin'`
     * shape.
     */
    flagCirclepin?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A flag series bindings. Includes `start` event. On click,
     * finds the closest point and marks it with a flag with `'diamondpin'`
     * shape.
     */
    flagDiamondpin?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A flag series bindings. Includes `start` event. On click,
     * finds the closest point and marks it with a flag without pin shape.
     */
    flagSimplepin?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A flag series bindings. Includes `start` event. On click,
     * finds the closest point and marks it with a flag with `'squarepin'`
     * shape.
     */
    flagSquarepin?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Displays chart in fullscreen.
     *
     * **Note**: Fullscreen is not supported on iPhone due to iOS limitations.
     */
    fullScreen?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A horizontal line annotation. Includes `start` event.
     */
    horizontalLine?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Indicators bindings. Includes `init` event to show a popup.
     *
     * Note: In order to show base series from the chart in the popup's dropdown
     * each series requires series.id to be defined.
     */
    indicators?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A line annotation. Includes `start` and one event in `steps`
     * array.
     */
    infinityLine?: NavigationBindingsOptionsObject;
    /**
     * (Highcharts, Highstock) A label annotation bindings. Includes `start`
     * event only.
     */
    labelAnnotation?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A measure (x-dimension) annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    measureX?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A measure (xy-dimension) annotation bindings. Includes
     * `start` and one event in `steps` array.
     */
    measureXY?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A measure (y-dimension) annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    measureY?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A parallel channel (tunnel) annotation bindings. Includes
     * `start` and two events in `steps` array (updates second point, then
     * height).
     */
    parallelChannel?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) An Andrew's pitchfork annotation bindings. Includes `start`
     * and two events in `steps` array (sets second and third control points).
     */
    pitchfork?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A ray annotation bindings. Includes `start` and one event in
     * `steps` array.
     */
    ray?: NavigationBindingsOptionsObject;
    /**
     * (Highcharts, Highstock) A rectangle annotation bindings. Includes `start`
     * and one event in `steps` array.
     */
    rectangleAnnotation?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Save a chart in localStorage under `highcharts-chart` key.
     * Stored items:
     *
     * - annotations
     *
     * - indicators (with yAxes)
     *
     * - flags
     */
    saveChart?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A segment annotation bindings. Includes `start` and one event
     * in `steps` array.
     */
    segment?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Changes main series to `'candlestick'` type.
     */
    seriesTypeCandlestick?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Changes main series to `'line'` type.
     */
    seriesTypeLine?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Changes main series to `'ohlc'` type.
     */
    seriesTypeOhlc?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Hides/shows all annotations on a chart.
     */
    toggleAnnotations?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A vertical arrow annotation bindings. Includes `start` event.
     * On click, finds the closest point and marks it with an arrow. Green arrow
     * when pointing from above, red when pointing from below the point.
     */
    verticalArrow?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A vertical counter annotation bindings. Includes `start`
     * event. On click, finds the closest point and marks it with a numeric
     * annotation - incrementing counter on each add.
     */
    verticalCounter?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A vertical arrow annotation bindings. Includes `start` event.
     * On click, finds the closest point and marks it with an arrow and a label
     * with value.
     */
    verticalLabel?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) A vertical line annotation. Includes `start` event.
     */
    verticalLine?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Enables zooming in xAxis on a chart. Includes `start` event
     * which changes chart.zoomType.
     */
    zoomX?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Enables zooming in xAxis and yAxis on a chart. Includes
     * `start` event which changes chart.zoomType.
     */
    zoomXY?: NavigationBindingsOptionsObject;
    /**
     * (Highstock) Enables zooming in yAxis on a chart. Includes `start` event
     * which changes chart.zoomType.
     */
    zoomY?: NavigationBindingsOptionsObject;
}
/**
 * A config object for navigation bindings in annotations.
 */
export interface NavigationBindingsOptionsObject {
    /**
     * ClassName of the element for a binding.
     */
    className?: string;
    /**
     * Last event to be fired after last step event.
     */
    end?: Function;
    /**
     * Initial event, fired on a button click.
     */
    init?: Function;
    /**
     * Event fired on first click on a chart.
     */
    start?: Function;
    /**
     * Last event to be fired after last step event. Array of step events to be
     * called sequentially after each user click.
     */
    steps?: Array<Function>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) A collection of options for buttons
 * appearing in the exporting module.
 *
 * In styled mode, the buttons are styled with the `.highcharts-contextbutton`
 * and `.highcharts-button-symbol` classes.
 */
export interface NavigationButtonOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alignment for the buttons.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel spacing between
     * buttons.
     */
    buttonSpacing?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to enable buttons.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Pixel height of the buttons.
     */
    height?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fill color for the symbol within
     * the button.
     */
    symbolFill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel size of the symbol on
     * the button.
     */
    symbolSize?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the symbol's stroke
     * or line.
     */
    symbolStroke?: ColorString;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel stroke width of the
     * symbol on the button.
     */
    symbolStrokeWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position of the center of
     * the symbol inside the button.
     */
    symbolX?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position of the center of
     * the symbol inside the button.
     */
    symbolY?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A text string to add to the
     * individual button.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A configuration object for the
     * button theme. The object accepts SVG properties like `stroke-width`,
     * `stroke` and `fill`. Tri-state button styles are supported by the
     * `states.hover` and `states.select` objects.
     */
    theme?: NavigationButtonThemeOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * buttons. Can be one of `"top"`, `"middle"` or `"bottom"`.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the button.
     */
    width?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical offset of the
     * button's position relative to its `verticalAlign`.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) A configuration object for the
 * button theme. The object accepts SVG properties like `stroke-width`, `stroke`
 * and `fill`. Tri-state button styles are supported by the `states.hover` and
 * `states.select` objects.
 */
export interface NavigationButtonThemeOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The default fill exists only to
     * capture hover events.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Padding for the button.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Default stroke for the buttons.
     */
    stroke?: ColorString;
}
/**
 * (Highcharts, Highstock) Events to communicate between Stock Tools and custom
 * GUI.
 */
export interface NavigationEventsOptions {
    /**
     * (Highcharts, Highstock) A `closePopup` event. Fired when Popup should be
     * hidden, for example when clicking on an annotation again.
     */
    closePopup?: Function;
    /**
     * (Highcharts, Highstock) Event fired when button state should change, for
     * example after adding an annotation.
     */
    deselectButton?: Function;
    /**
     * (Highcharts, Highstock) Event fired on a button click.
     */
    selectButton?: Function;
    /**
     * (Highcharts, Highstock) A `showPopup` event. Fired when selecting for
     * example an annotation.
     */
    showPopup?: Function;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) A collection of options for buttons
 * and menus appearing in the exporting module.
 */
export interface NavigationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Additional options to be merged
     * into all annotations.
     */
    annotationsOptions?: (AnnotationsOptions|NavigationAnnotationsOptions);
    /**
     * (Highcharts, Highstock) Bindings definitions for custom HTML buttons.
     * Each binding implements simple event-driven interface:
     *
     * - `className`: classname used to bind event to
     *
     * - `init`: initial event, fired on button click
     *
     * - `start`: fired on first click on a chart
     *
     * - `steps`: array of sequential events fired one after another on each of
     * users clicks
     *
     * - `end`: last event to be called after last step event
     */
    bindings?: (NavigationBindingsOptions|Dictionary<NavigationBindingsOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A CSS class name where all
     * bindings will be attached to. Multiple charts on the same page should
     * have separate class names to prevent duplicating events.
     *
     * Default value of versions < 7.0.4 `highcharts-bindings-wrapper`
     */
    bindingsClassName?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A collection of options for
     * buttons appearing in the exporting module.
     *
     * In styled mode, the buttons are styled with the
     * `.highcharts-contextbutton` and `.highcharts-button-symbol` classes.
     */
    buttonOptions?: NavigationButtonOptions;
    /**
     * (Highcharts, Highstock) Events to communicate between Stock Tools and
     * custom GUI.
     */
    events?: NavigationEventsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Path where Highcharts will look
     * for icons. Change this to use icons from a different server.
     */
    iconsURL?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the hover state
     * of the individual items within the popup menu appearing by default when
     * the export icon is clicked. The menu items are rendered in HTML.
     */
    menuItemHoverStyle?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the individual
     * items within the popup menu appearing by default when the export icon is
     * clicked. The menu items are rendered in HTML. Font size defaults to
     * `11px` on desktop and `14px` on touch devices.
     */
    menuItemStyle?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the popup menu
     * appearing by default when the export icon is clicked. This menu is
     * rendered in HTML.
     */
    menuStyle?: CSSObject;
}
/**
 * (Highstock, Gantt) Options for the handles for dragging the zoomed area.
 */
export interface NavigatorHandlesOptions {
    /**
     * (Highstock, Gantt) The fill for the handle.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The stroke for the handle border and the stripes
     * inside.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) Allows to enable/disable handles.
     */
    enabled?: boolean;
    /**
     * (Highstock, Gantt) Height for handles.
     */
    height?: number;
    /**
     * (Highstock, Gantt) The width for the handle border and the stripes
     * inside.
     */
    lineWidth?: object;
    /**
     * (Highstock, Gantt) Array to define shapes of handles. 0-index for left,
     * 1-index for right.
     *
     * Additionally, the URL to a graphic can be given on this form:
     * `url(graphic.png)`. Note that for the image to be applied to exported
     * charts, its URL needs to be accessible by the export server.
     *
     * Custom callbacks for symbol path generation can also be added to
     * `Highcharts.SVGRenderer.prototype.symbols`. The callback is then used by
     * its method name, as shown in the demo.
     */
    symbols?: Array<string>;
    /**
     * (Highstock, Gantt) Width for handles.
     */
    width?: number;
}
/**
 * (Highstock, Gantt) The navigator is a small series below the main series,
 * displaying a view of the entire data set. It provides tools to zoom in and
 * out on parts of the data as well as panning across the dataset.
 */
export interface NavigatorOptions {
    /**
     * (Highstock, Gantt) Whether the navigator and scrollbar should adapt to
     * updated data in the base X axis. When loading data async, as in the demo
     * below, this should be `false`. Otherwise new data will trigger navigator
     * redraw, which will cause unwanted looping. In the demo below, the data in
     * the navigator is set only once. On navigating, only the main chart
     * content is updated.
     */
    adaptToUpdatedData?: boolean;
    /**
     * (Highstock, Gantt) Enable or disable the navigator.
     */
    enabled?: boolean;
    /**
     * (Highstock, Gantt) Options for the handles for dragging the zoomed area.
     */
    handles?: NavigatorHandlesOptions;
    /**
     * (Highstock, Gantt) The height of the navigator.
     */
    height?: number;
    /**
     * (Highstock, Gantt) The distance from the nearest element, the X axis or X
     * axis labels.
     */
    margin?: number;
    /**
     * (Highstock, Gantt) The color of the mask covering the areas of the
     * navigator series that are currently not visible in the main series. The
     * default color is bluish with an opacity of 0.3 to see the series below.
     */
    maskFill?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) Whether the mask should be inside the range marking
     * the zoomed range, or outside. In Highstock 1.x it was always `false`.
     */
    maskInside?: boolean;
    /**
     * (Highstock, Gantt) When the chart is inverted, whether to draw the
     * navigator on the opposite side.
     */
    opposite?: boolean;
    /**
     * (Highstock, Gantt) The color of the line marking the currently zoomed
     * area in the navigator.
     */
    outlineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The width of the line marking the currently zoomed
     * area in the navigator.
     */
    outlineWidth?: number;
    /**
     * (Highstock, Gantt) Options for the navigator series. Available options
     * are the same as any series, documented at plotOptions and series.
     *
     * Unless data is explicitly defined on navigator.series, the data is
     * borrowed from the first series in the chart.
     *
     * Default series options for the navigator series are: (see online
     * documentation for example)
     */
    series?: (NavigatorSeriesOptions|SeriesOptionsType|Array<NavigatorSeriesOptions>|Array<SeriesOptionsType>);
    /**
     * (Highstock, Gantt) Options for the navigator X axis. Default series
     * options for the navigator xAxis are: (see online documentation for
     * example)
     */
    xAxis?: (NavigatorXAxisOptions|Array<NavigatorXAxisOptions>);
    /**
     * (Highstock, Gantt) Options for the navigator Y axis. Default series
     * options for the navigator yAxis are: (see online documentation for
     * example)
     */
    yAxis?: (NavigatorYAxisOptions|Array<NavigatorYAxisOptions>);
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface NavigatorSeriesDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Data label options for the navigator
 * series. Data labels are disabled by default on the navigator series.
 */
export interface NavigatorSeriesDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|NavigatorSeriesDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
    zIndex?: number;
}
export interface NavigatorSeriesMarkerOptions {
    enabled?: boolean;
}
/**
 * (Highstock, Gantt) Options for the navigator series. Available options are
 * the same as any series, documented at plotOptions and series.
 *
 * Unless data is explicitly defined on navigator.series, the data is borrowed
 * from the first series in the chart.
 *
 * Default series options for the navigator series are: (see online
 * documentation for example)
 */
export interface NavigatorSeriesOptions {
    className?: string;
    /**
     * (Highstock, Gantt) Sets the fill color of the navigator series.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Unless data is explicitly defined, the data is borrowed from
     * the first series in the chart.
     */
    data?: Array<(number|Array<(number|string|null)>|object|null)>;
    /**
     * (Highstock) Data grouping options for the navigator series.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Data label options for the
     * navigator series. Data labels are disabled by default on the navigator
     * series.
     */
    dataLabels?: (NavigatorSeriesDataLabelsOptions|Array<NavigatorSeriesDataLabelsOptions>);
    /**
     * (Highstock, Gantt) The fill opacity of the navigator series.
     */
    fillOpacity?: number;
    id?: string;
    /**
     * (Highstock, Gantt) Line color for the navigator series. Allows setting
     * the color while disallowing the default candlestick setting.
     */
    lineColor?: (ColorString|null);
    /**
     * (Highstock, Gantt) The pixel line width of the navigator series.
     */
    lineWidth?: number;
    marker?: NavigatorSeriesMarkerOptions;
    /**
     * (Highstock) Since Highstock v8, default value is the same as default
     * `pointRange` defined for a specific type (e.g. `null` for column type).
     *
     * In Highstock version < 8, defaults to 0.
     */
    pointRange?: (number|null);
    /**
     * (Highstock, Gantt) The threshold option. Setting it to 0 will make the
     * default navigator area series draw its area from the 0 value and up.
     */
    threshold?: (number|null);
    /**
     * (Highstock, Gantt) The type of the navigator series.
     *
     * Heads up: In column-type navigator, zooming is limited to at least one
     * point with its `pointRange`.
     */
    type?: string;
}
/**
 * (Highcharts, Highstock, Gantt) An array defining breaks in the axis, the
 * sections defined will be left out and all the points shifted closer to each
 * other.
 */
export interface NavigatorXAxisBreaksOptions {
    /**
     * (Highcharts, Highstock, Gantt) A number indicating how much space should
     * be left between the start and the end of the break. The break size is
     * given in axis units, so for instance on a `datetime` axis, a break size
     * of 3600000 would indicate the equivalent of an hour.
     */
    breakSize?: number;
    /**
     * (Highcharts, Highstock, Gantt) The point where the break starts.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) Defines an interval after which the break
     * appears again. By default the breaks do not repeat.
     */
    repeat?: number;
    /**
     * (Highcharts, Highstock, Gantt) The point where the break ends.
     */
    to?: number;
}
/**
 * (Gantt) An object defining mouse events for the plot line. Supported
 * properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface NavigatorXAxisCurrentDateIndicatorEventsOptions {
    /**
     * (Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse out event on the corner of a plot band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Gantt) Text labels for the plot bands
 */
export interface NavigatorXAxisCurrentDateIndicatorLabelOptions {
    /**
     * (Gantt) Horizontal alignment of the label. Can be one of "left", "center"
     * or "right".
     */
    align?: AlignValue;
    /**
     * (Gantt) Format of the label. This options is passed as the fist argument
     * to dateFormat function.
     */
    format?: string;
    /**
     * (Gantt) Callback JavaScript function to format the label. Useful
     * properties like the value of plot line or the range of plot band (`from`
     * & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Rotation of the text label in degrees. Defaults to 0 for
     * horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Gantt) The text itself. A subset of HTML is supported.
     */
    text?: string;
    /**
     * (Gantt) The text alignment for the label. While `align` determines where
     * the texts anchor point is placed within the plot band, `textAlign`
     * determines how the text is aligned against its anchor point. Possible
     * values are "left", "center" and "right". Defaults to the same as the
     * `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Gantt) Vertical alignment of the label relative to the plot line. Can be
     * one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Gantt) Horizontal position relative the alignment. Default varies by
     * orientation.
     */
    x?: number;
    /**
     * (Gantt) Vertical position of the text baseline relative to the alignment.
     * Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highstock, Gantt) Event handlers for the axis.
 */
export interface NavigatorXAxisEventsOptions {
    /**
     * (Highcharts, Gantt) An event fired after the breaks have rendered.
     */
    afterBreaks?: AxisEventCallbackFunction;
    /**
     * (Highstock, Gantt) As opposed to the `setExtremes` event, this event
     * fires after the final min and max values are computed and corrected for
     * `minRange`.
     *
     * Fires when the minimum and maximum is set for the axis, either by calling
     * the `.setExtremes()` method or by selecting an area in the chart. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in axis
     * values. The actual data extremes are found in `event.dataMin` and
     * `event.dataMax`.
     */
    afterSetExtremes?: AxisSetExtremesEventCallbackFunction;
    /**
     * (Highcharts, Gantt) An event fired when a break from this axis occurs on
     * a point.
     */
    pointBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) An event fired when a point falls inside a
     * break from this axis.
     */
    pointInBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highstock, Gantt) Fires when the minimum and maximum is set for the
     * axis, either by calling the `.setExtremes()` method or by selecting an
     * area in the chart. One parameter, `event`, is passed to the function,
     * containing common event information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in data
     * values. When an axis is zoomed all the way out from the "Reset zoom"
     * button, `event.min` and `event.max` are null, and the new extremes are
     * set based on `this.dataMin` and `this.dataMax`.
     */
    setExtremes?: AxisSetExtremesEventCallbackFunction;
}
/**
 * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
 */
export interface NavigatorXAxisGridOptions {
    /**
     * (Gantt) Set border color for the label grid lines.
     */
    borderColor?: ColorString;
    /**
     * (Gantt) Set border width of the label grid lines.
     */
    borderWidth?: number;
    /**
     * (Gantt) Set cell height for grid axis labels. By default this is
     * calculated from font size. This option only applies to horizontal axes.
     */
    cellHeight?: number;
    /**
     * (Gantt) Set specific options for each column (or row for horizontal axes)
     * in the grid. Each extra column/row is its own axis, and the axis options
     * can be set here.
     */
    columns?: Array<XAxisOptions>;
    /**
     * (Gantt) Enable grid on the axis labels. Defaults to true for Gantt
     * charts.
     */
    enabled?: boolean;
}
/**
 * (Highstock, Gantt) The axis labels show the number or category for each tick.
 *
 * Since v8.0.0: Labels are animated in categorized x-axis with updating data if
 * `tickInterval` and `step` is set to 1.
 */
export interface NavigatorXAxisLabelsOptions {
    /**
     * (Highstock, Gantt) What part of the string the given position is anchored
     * to. If `left`, the left side of the string is at the axis position. Can
     * be one of `"left"`, `"center"` or `"right"`. Defaults to an intelligent
     * guess based on which side of the chart the axis is on and the rotation of
     * the label.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Gantt) For horizontal axes, the allowed degrees
     * of label rotation to prevent overlapping labels. If there is enough
     * space, labels are not rotated. As the chart gets narrower, it will start
     * rotating the labels -45 degrees, then remove every second label and try
     * again with rotations 0 and -45 etc. Set it to `false` to disable
     * rotation, which will cause the labels to word-wrap if possible.
     */
    autoRotation?: (false|Array<number>);
    /**
     * (Highcharts, Gantt) When each category width is more than this many
     * pixels, we don't apply auto rotation. Instead, we lay out the axis label
     * with word wrap. A lower limit makes sense when the label contains
     * multiple short words that don't extend the available horizontal space for
     * each label.
     */
    autoRotationLimit?: number;
    /**
     * (Highcharts, Gantt) Polar charts only. The label's pixel distance from
     * the perimeter of the plot area.
     */
    distance?: number;
    /**
     * (Highstock, Gantt) Enable or disable the axis labels.
     */
    enabled?: boolean;
    /**
     * (Highstock, Gantt) A format string for the axis label.
     */
    format?: string;
    /**
     * (Highstock, Gantt) Callback JavaScript function to format the label. The
     * value is given by `this.value`. Additional properties for `this` are
     * `axis`, `chart`, `isFirst` and `isLast`. The value of the default label
     * formatter can be retrieved by calling
     * `this.axis.defaultLabelFormatter.call(this)` within the function.
     *
     * Defaults to: (see online documentation for example)
     */
    formatter?: AxisLabelsFormatterCallbackFunction;
    /**
     * (Gantt) The number of pixels to indent the labels per level in a treegrid
     * axis.
     */
    indentation?: number;
    /**
     * (Highstock, Gantt) How to handle overflowing labels on horizontal axis.
     * If set to `"allow"`, it will not be aligned at all. By default it
     * `"justify"` labels inside the chart area. If there is room to move it, it
     * will be aligned to the edge, else it will be removed.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Gantt) The pixel padding for axis labels, to ensure white
     * space between them.
     */
    padding?: number;
    /**
     * (Highcharts) Defines how the labels are be repositioned according to the
     * 3D chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     */
    position3d?: OptionsPosition3dValue;
    /**
     * (Highcharts, Gantt) Whether to reserve space for the labels. By default,
     * space is reserved for the labels in these cases:
     *
     * * On all horizontal axes.
     *
     * * On vertical axes if `label.align` is `right` on a left-side axis or
     * `left` on a right-side axis.
     *
     * * On vertical axes if `label.align` is `center`.
     *
     * This can be turned off when for example the labels are rendered inside
     * the plot area instead of outside.
     */
    reserveSpace?: boolean;
    /**
     * (Highstock, Gantt) Rotation of the labels in degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis labels will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `labels.position3d`.
     */
    skew3d?: boolean;
    /**
     * (Highstock, Gantt) Horizontal axes only. The number of lines to spread
     * the labels over to make room or tighter labels.
     */
    staggerLines?: number;
    /**
     * (Highstock, Gantt) To show only every _n_'th label on the axis, set the
     * step to _n_. Setting the step to 2 shows every other label.
     *
     * By default, the step is calculated automatically to avoid overlap. To
     * prevent this, set it to 1\. This usually only happens on a category axis,
     * and is often a sign that you have chosen the wrong axis type.
     *
     * Read more at Axis docs => What axis should I use?
     */
    step?: number;
    /**
     * (Highstock, Gantt) CSS styles for the label. Use `whiteSpace: 'nowrap'`
     * to prevent wrapping of category labels. Use `textOverflow: 'none'` to
     * prevent ellipsis (dots).
     *
     * In styled mode, the labels are styled with the `.highcharts-axis-labels`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highstock, Gantt) The x position offset of all labels relative to the
     * tick positions on the axis.
     */
    x?: number;
    /**
     * (Highstock, Gantt) The y position offset of all labels relative to the
     * tick positions on the axis. The default makes it adapt to the font size
     * of the bottom axis.
     */
    y?: number;
    /**
     * (Highstock, Gantt) The Z index for the axis labels.
     */
    zIndex?: number;
}
/**
 * (Highstock, Gantt) Options for the navigator X axis. Default series options
 * for the navigator xAxis are: (see online documentation for example)
 */
export interface NavigatorXAxisOptions {
    /**
     * (Highstock, Gantt) Accessibility options for an axis. Requires the
     * accessibility module.
     */
    accessibility?: AxisAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When using multiple axis, the ticks of two
     * or more opposite axes will automatically be aligned by adding ticks to
     * the axis or axes with the least ticks, as if `tickAmount` were specified.
     *
     * This can be prevented by setting `alignTicks` to false. If the grid lines
     * look messy, it's a good idea to hide them for the secondary axis by
     * setting `gridLineWidth` to 0.
     *
     * If `startOnTick` or `endOnTick` in an Axis options are set to false, then
     * the `alignTicks ` will be disabled for the Axis.
     *
     * Disabled for logarithmic axes.
     */
    alignTicks?: boolean;
    /**
     * (Highstock, Gantt) Whether to allow decimals in this axis' ticks. When
     * counting integers, like persons or hits on a web page, decimals should be
     * avoided in the labels.
     */
    allowDecimals?: boolean;
    /**
     * (Highstock, Gantt) When using an alternate grid color, a band is painted
     * across the plot area between every other grid line.
     */
    alternateGridColor?: ColorType;
    /**
     * (Highcharts) In a polar chart, this is the angle of the Y axis in
     * degrees, where 0 is up and 90 is right. The angle determines the position
     * of the axis line and the labels, though the coordinate system is
     * unaffected. Since v8.0.0 this option is also applicable for X axis
     * (inverted polar).
     */
    angle?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array defining breaks in the axis, the
     * sections defined will be left out and all the points shifted closer to
     * each other.
     */
    breaks?: Array<NavigatorXAxisBreaksOptions>;
    /**
     * (Highcharts, Gantt) If categories are present for the xAxis, names are
     * used instead of numbers for that axis.
     *
     * Since Highcharts 3.0, categories can also be extracted by giving each
     * point a name and setting axis type to `category`. However, if you have
     * multiple series, best practice remains defining the `categories` array.
     *
     * Example: `categories: ['Apples', 'Bananas', 'Oranges']`
     */
    categories?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) The highest allowed value for
     * automatically computed axis extremes.
     */
    ceiling?: number;
    /**
     * (Highstock, Gantt) A class name that opens for styling the axis by CSS,
     * especially in Highcharts styled mode. The class name is applied to group
     * elements for the grid, axis elements and labels.
     */
    className?: string;
    /**
     * (Highstock, Gantt) Configure a crosshair that follows either the mouse
     * pointer or the hovered point.
     *
     * In styled mode, the crosshairs are styled in the `.highcharts-crosshair`,
     * `.highcharts-crosshair-thin` or `.highcharts-xaxis-category` classes.
     */
    crosshair?: (boolean|AxisCrosshairOptions);
    /**
     * (Gantt) Show an indicator on the axis for the current date and time. Can
     * be a boolean or a configuration object similar to xAxis.plotLines.
     */
    currentDateIndicator?: (boolean|AxisCurrentDateIndicatorOptions);
    /**
     * (Highcharts, Highstock, Gantt) For a datetime axis, the scale will
     * automatically adjust to the appropriate unit. This member gives the
     * default string representations used for each unit. For intermediate
     * values, different units may be used, for example the `day` unit can be
     * used on midnight and `hour` unit be used for intermediate values on the
     * same axis.
     *
     * For an overview of the replacement codes, see dateFormat.
     *
     * Defaults to: (see online documentation for example)
     */
    dateTimeLabelFormats?: AxisDateTimeLabelFormatsOptions;
    /**
     * (Highstock, Gantt) Whether to force the axis to end on a tick. Use this
     * option with the `maxPadding` option to control the axis end.
     */
    endOnTick?: boolean;
    /**
     * (Highstock, Gantt) Event handlers for the axis.
     */
    events?: NavigatorXAxisEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The lowest allowed value for automatically
     * computed axis extremes.
     */
    floor?: number;
    /**
     * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
     */
    grid?: NavigatorXAxisGridOptions;
    /**
     * (Highstock, Gantt) Color of the grid lines extending the ticks across the
     * plot area.
     *
     * In styled mode, the stroke is given in the `.highcharts-grid-line` class.
     */
    gridLineColor?: string;
    /**
     * (Highstock, Gantt) The dash or dot style of the grid lines. For possible
     * values, see this demonstration.
     */
    gridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Polar charts only. Whether the grid lines should draw as a
     * polygon with straight lines between categories, or as circles. Can be
     * either `circle` or `polygon`. Since v8.0.0 this option is also applicable
     * for X axis (inverted polar).
     */
    gridLineInterpolation?: OptionsGridLineInterpolationValue;
    /**
     * (Highstock, Gantt) The width of the grid lines extending the ticks across
     * the plot area.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    gridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Z index of the grid lines.
     */
    gridZIndex?: number;
    /**
     * (Highcharts, Highstock) The height as the vertical axis. If it's a
     * number, it is interpreted as pixels.
     *
     * Since Highcharts 2: If it's a percentage string, it is interpreted as
     * percentages of the total plot height.
     */
    height?: (number|string);
    /**
     * (Highstock, Gantt) An id for the axis. This can be used after render time
     * to get a pointer to the axis object through `chart.get()`.
     */
    id?: string;
    /**
     * (Highstock, Gantt) The axis labels show the number or category for each
     * tick.
     *
     * Since v8.0.0: Labels are animated in categorized x-axis with updating
     * data if `tickInterval` and `step` is set to 1.
     */
    labels?: NavigatorXAxisLabelsOptions;
    /**
     * (Highcharts, Highstock) The left position as the horizontal axis. If it's
     * a number, it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the plot width, offset from plot area left.
     */
    left?: (number|string);
    /**
     * (Highstock, Gantt) The color of the line marking the axis itself.
     *
     * In styled mode, the line stroke is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineColor?: ColorType;
    /**
     * (Highstock, Gantt) The width of the line marking the axis itself.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineWidth?: number;
    /**
     * (Highstock, Gantt) If there are multiple axes on the same side of the
     * chart, the pixel margin between the axes. Defaults to 0 on vertical axes,
     * 15 on horizontal axes.
     */
    margin?: number;
    /**
     * (Highstock, Gantt) The maximum value of the axis. If `null`, the max
     * value is automatically calculated.
     *
     * If the endOnTick option is true, the `max` value might be rounded up.
     *
     * If a tickAmount is set, the axis may be extended beyond the set max in
     * order to reach the given number of ticks. The same may happen in a chart
     * with multiple axes, determined by chart. alignTicks, where a `tickAmount`
     * is applied internally.
     */
    max?: (number|null);
    /**
     * (Highstock, Gantt) Padding of the max value relative to the length of the
     * axis. A padding of 0.05 will make a 100px axis 5px longer. This is useful
     * when you don't want the highest data value to appear on the edge of the
     * plot area. When the axis' `max` option is set or a max extreme is set
     * using `axis.setExtremes()`, the maxPadding will be ignored.
     */
    maxPadding?: number;
    /**
     * (Highstock, Gantt) The minimum value of the axis. If `null` the min value
     * is automatically calculated.
     *
     * If the startOnTick option is true (default), the `min` value might be
     * rounded down.
     *
     * The automatically calculated minimum value is also affected by floor,
     * softMin, minPadding, minRange as well as series.threshold and
     * series.softThreshold.
     */
    min?: (number|null);
    /**
     * (Highstock, Gantt) Color of the minor, secondary grid lines.
     *
     * In styled mode, the stroke width is given in the
     * `.highcharts-minor-grid-line` class.
     */
    minorGridLineColor?: ColorType;
    /**
     * (Highstock, Gantt) The dash or dot style of the minor grid lines. For
     * possible values, see this demonstration.
     */
    minorGridLineDashStyle?: DashStyleValue;
    /**
     * (Highstock, Gantt) Width of the minor, secondary grid lines.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    minorGridLineWidth?: number;
    /**
     * (Highstock, Gantt) Color for the minor tick marks.
     */
    minorTickColor?: ColorType;
    /**
     * (Highstock, Gantt) Specific tick interval in axis units for the minor
     * ticks. On a linear axis, if `"auto"`, the minor tick interval is
     * calculated as a fifth of the tickInterval. If `null` or `undefined`,
     * minor ticks are not shown.
     *
     * On logarithmic axes, the unit is the power of the value. For example,
     * setting the minorTickInterval to 1 puts one tick on each of 0.1, 1, 10,
     * 100 etc. Setting the minorTickInterval to 0.1 produces 9 ticks between 1
     * and 10, 10 and 100 etc.
     *
     * If user settings dictate minor ticks to become too dense, they don't make
     * sense, and will be ignored to prevent performance problems.
     */
    minorTickInterval?: (number|string|null);
    /**
     * (Highstock, Gantt) The pixel length of the minor tick marks.
     */
    minorTickLength?: number;
    /**
     * (Highstock, Gantt) The position of the minor tick marks relative to the
     * axis line. Can be one of `inside` and `outside`.
     */
    minorTickPosition?: OptionsMinorTickPositionValue;
    /**
     * (Highstock, Gantt) Enable or disable minor ticks. Unless
     * minorTickInterval is set, the tick interval is calculated as a fifth of
     * the `tickInterval`.
     *
     * On a logarithmic axis, minor ticks are laid out based on a best guess,
     * attempting to enter approximately 5 minor ticks between each major tick.
     *
     * Prior to v6.0.0, ticks were unabled in auto layout by setting
     * `minorTickInterval` to `"auto"`.
     */
    minorTicks?: boolean;
    /**
     * (Highstock, Gantt) The pixel width of the minor tick mark.
     */
    minorTickWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Padding of the min value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the lowest data value to appear on the
     * edge of the plot area. When the axis' `min` option is set or a min
     * extreme is set using `axis.setExtremes()`, the minPadding will be
     * ignored.
     */
    minPadding?: number;
    /**
     * (Highstock, Gantt) The minimum tick interval allowed in axis values. For
     * example on zooming in on an axis with daily data, this can be used to
     * prevent the axis from showing hours. Defaults to the closest distance
     * between two points on the axis.
     */
    minTickInterval?: number;
    /**
     * (Highstock, Gantt) The distance in pixels from the plot area to the axis
     * line. A positive offset moves the axis with it's line, labels and ticks
     * away from the plot area. This is typically used when two or more axes are
     * displayed on the same side of the plot. With multiple axes the offset is
     * dynamically adjusted to avoid collision, this can be overridden by
     * setting offset explicitly.
     */
    offset?: number;
    /**
     * (Highstock) In an ordinal axis, the points are equally spaced in the
     * chart regardless of the actual time or x distance between them. This
     * means that missing data periods (e.g. nights or weekends for a stock
     * chart) will not take up space in the chart. Having `ordinal: false` will
     * show any gaps created by the `gapSize` setting proportionate to their
     * duration.
     *
     * In stock charts the X axis is ordinal by default, unless the boost module
     * is used and at least one of the series' data length exceeds the
     * boostThreshold.
     */
    ordinal?: boolean;
    /**
     * (Highstock) Additional range on the right side of the xAxis. Works
     * similar to xAxis.maxPadding, but value is set in milliseconds. Can be set
     * for both, main xAxis and navigator's xAxis.
     */
    overscroll?: number;
    /**
     * (Highcharts) Refers to the index in the panes array. Used for circular
     * gauges and polar charts. When the option is not set then first pane will
     * be used.
     */
    pane?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array of colored bands stretching
     * across the plot area marking an interval on the axis.
     *
     * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
     * class in addition to the `className` option.
     */
    plotBands?: Array<NavigatorXAxisPlotBandsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) An array of lines stretching across the
     * plot area, marking a specific value on one of the axes.
     *
     * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
     * class in addition to the `className` option.
     */
    plotLines?: Array<NavigatorXAxisPlotLinesOptions>;
    /**
     * (Highstock, Gantt) Whether to reverse the axis so that the highest number
     * is closest to the origin. If the chart is inverted, the x axis is
     * reversed by default.
     */
    reversed?: boolean;
    /**
     * (Highcharts, Highstock) This option determines how stacks should be
     * ordered within a group. For example reversed xAxis also reverses stacks,
     * so first series comes last in a group. To keep order like for
     * non-reversed xAxis enable this option.
     */
    reversedStacks?: boolean;
    /**
     * (Highstock, Gantt) Whether to show the first tick label.
     */
    showFirstLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to show the last tick label.
     * Defaults to `true` on cartesian charts, and `false` on polar charts.
     */
    showLastLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A soft maximum for the axis. If the series
     * data maximum is less than this, the axis will stay at this maximum, but
     * if the series data maximum is higher, the axis will flex to show all
     * data.
     */
    softMax?: number;
    /**
     * (Highcharts, Highstock, Gantt) A soft minimum for the axis. If the series
     * data minimum is greater than this, the axis will stay at this minimum,
     * but if the series data minimum is lower, the axis will flex to show all
     * data.
     */
    softMin?: number;
    /**
     * (Highcharts, Highstock, Gantt) For datetime axes, this decides where to
     * put the tick between weeks. 0 = Sunday, 1 = Monday.
     */
    startOfWeek?: number;
    /**
     * (Highstock, Gantt) Whether to force the axis to start on a tick. Use this
     * option with the `minPadding` option to control the axis start.
     */
    startOnTick?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) The amount of ticks to draw on the axis.
     * This opens up for aligning the ticks of multiple charts or panes within a
     * chart. This option overrides the `tickPixelInterval` option.
     *
     * This option only has an effect on linear axes. Datetime, logarithmic or
     * category axes are not affected.
     */
    tickAmount?: number;
    /**
     * (Highstock, Gantt) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: ColorType;
    /**
     * (Highstock, Gantt) The interval of the tick marks in axis units. When
     * `undefined`, the tick interval is computed to approximately follow the
     * tickPixelInterval on linear and datetime axes. On categorized axes, a
     * `undefined` tickInterval will default to 1, one category. Note that
     * datetime axes are based on milliseconds, so for example an interval of
     * one day is expressed as `24 * 3600 * 1000`.
     *
     * On logarithmic axes, the tickInterval is based on powers, so a
     * tickInterval of 1 means one tick on each of 0.1, 1, 10, 100 etc. A
     * tickInterval of 2 means a tick of 0.1, 10, 1000 etc. A tickInterval of
     * 0.2 puts a tick on 0.1, 0.2, 0.4, 0.6, 0.8, 1, 2, 4, 6, 8, 10, 20, 40
     * etc.
     *
     * If the tickInterval is too dense for labels to be drawn, Highcharts may
     * remove ticks.
     *
     * If the chart has multiple axes, the alignTicks option may interfere with
     * the `tickInterval` setting.
     */
    tickInterval?: number;
    /**
     * (Highstock, Gantt) The pixel length of the main tick marks.
     */
    tickLength?: number;
    /**
     * (Highcharts, Gantt) For categorized axes only. If `on` the tick mark is
     * placed in the center of the category, if `between` the tick mark is
     * placed between categories. The default is `between` if the `tickInterval`
     * is 1, else `on`.
     */
    tickmarkPlacement?: OptionsTickmarkPlacementValue;
    /**
     * (Highstock, Gantt) If tickInterval is `null` this option sets the
     * approximate pixel interval of the tick marks. Not applicable to
     * categorized axis.
     *
     * The tick interval is also influenced by the minTickInterval option, that,
     * by default prevents ticks from being denser than the data points.
     */
    tickPixelInterval?: number;
    /**
     * (Highstock, Gantt) The position of the major tick marks relative to the
     * axis line. Can be one of `inside` and `outside`.
     */
    tickPosition?: OptionsTickPositionValue;
    /**
     * (Highstock, Gantt) A callback function returning array defining where the
     * ticks are laid out on the axis. This overrides the default behaviour of
     * tickPixelInterval and tickInterval. The automatic tick positions are
     * accessible through `this.tickPositions` and can be modified by the
     * callback.
     */
    tickPositioner?: AxisTickPositionerCallbackFunction;
    /**
     * (Highstock, Gantt) An array defining where the ticks are laid out on the
     * axis. This overrides the default behaviour of tickPixelInterval and
     * tickInterval.
     */
    tickPositions?: Array<number>;
    /**
     * (Highstock, Gantt) The pixel width of the major tick marks. Defaults to 0
     * on category axes, otherwise 1.
     *
     * In styled mode, the stroke width is given in the `.highcharts-tick`
     * class, but in order for the element to be generated on category axes, the
     * option must be explicitly set to 1.
     */
    tickWidth?: (number|undefined);
    /**
     * (Highstock, Gantt) The axis title, showing next to the axis line.
     */
    title?: NavigatorXAxisTitleOptions;
    /**
     * (Highcharts, Highstock) The top position as the vertical axis. If it's a
     * number, it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts 2: If it's a percentage string, it is interpreted as
     * percentages of the plot height, offset from plot area top.
     */
    top?: (number|string);
    /**
     * (Highcharts, Gantt) The type of axis. Can be one of `linear`,
     * `logarithmic`, `datetime` or `category`. In a datetime axis, the numbers
     * are given in milliseconds, and tick marks are placed on appropriate
     * values like full hours or days. In a category axis, the point names of
     * the chart's series are used for categories, if not a categories array is
     * defined.
     */
    type?: AxisTypeValue;
    /**
     * (Highcharts, Gantt) Applies only when the axis `type` is `category`. When
     * `uniqueNames` is true, points are placed on the X axis according to their
     * names. If the same point name is repeated in the same or another series,
     * the point is placed on the same X position as other points of the same
     * name. When `uniqueNames` is false, the points are laid out in increasing
     * X positions regardless of their names, and the X axis category will take
     * the name of the last point in each position.
     */
    uniqueNames?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Datetime axis only. An array determining
     * what time intervals the ticks are allowed to fall on. Each array item is
     * an array where the first value is the time unit and the second value
     * another array of allowed multiples.
     *
     * Defaults to: (see online documentation for example)
     */
    units?: Array<[string, (Array<number>|null)]>;
    /**
     * (Highcharts, Highstock, Gantt) Whether axis, including axis title, line,
     * ticks and labels, should be visible.
     */
    visible?: boolean;
    /**
     * (Highcharts, Highstock) The width as the horizontal axis. If it's a
     * number, it is interpreted as pixels.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the total plot width.
     */
    width?: (number|string);
    /**
     * (Highstock, Gantt) Whether to zoom axis. If `chart.zoomType` is set, the
     * option allows to disable zooming on an individual axis.
     */
    zoomEnabled?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * band. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface NavigatorXAxisPlotBandsEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface NavigatorXAxisPlotBandsLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees .
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-band-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The string text itself. A subset of HTML
     * is supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot band. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of colored bands stretching across
 * the plot area marking an interval on the axis.
 *
 * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
 * class in addition to the `className` option.
 */
export interface NavigatorXAxisPlotBandsOptions {
    /**
     * (Highstock) Flag to decide if plotBand should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Border color for the plot band. Also
     * requires `borderWidth` to be set.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) Border width for the plot band. Also
     * requires `borderColor` to be set.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-band`, to apply to each individual band.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the plot band.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot band. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: NavigatorXAxisPlotBandsEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The start position of the plot band in
     * axis units.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot band
     * in Axis.removePlotBand.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: NavigatorXAxisPlotBandsLabelOptions;
    /**
     * (Highcharts, Highstock, Gantt) The end position of the plot band in axis
     * units.
     */
    to?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot band within the
     * chart, relative to other elements. Using the same z index as another
     * element may give unpredictable results, as the last rendered element will
     * be on top. Values from 0 to 20 make sense.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * line. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface NavigatorXAxisPlotLinesEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface NavigatorXAxisPlotLinesLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Callback JavaScript function to format the
     * label. Useful properties like the value of plot line or the range of plot
     * band (`from` & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees.
     * Defaults to 0 for horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The text itself. A subset of HTML is
     * supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot line. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of lines stretching across the plot
 * area, marking a specific value on one of the axes.
 *
 * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
 * class in addition to the `className` option.
 */
export interface NavigatorXAxisPlotLinesOptions {
    /**
     * (Highstock) Flag to decide if plotLine should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-line`, to apply to each individual line.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the line.
     */
    color?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) The dashing or dot style for the plot
     * line. For possible values see this overview.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot line. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: NavigatorXAxisPlotLinesEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot line
     * in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: NavigatorXAxisPlotLinesLabelOptions;
    /**
     * (Highcharts, Highstock, Gantt) The position of the line in axis units.
     */
    value?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width or thickness of the plot line.
     */
    width?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot line within the
     * chart.
     */
    zIndex?: number;
}
/**
 * (Highstock, Gantt) The axis title, showing next to the axis line.
 */
export interface NavigatorXAxisTitleOptions {
    /**
     * (Highstock, Gantt) Alignment of the title relative to the axis values.
     * Possible values are "low", "middle" or "high".
     */
    align?: AxisTitleAlignValue;
    /**
     * (Highstock, Gantt) The pixel distance between the axis labels or line and
     * the title. Defaults to 0 for horizontal axes, 10 for vertical
     */
    margin?: number;
    /**
     * (Highstock, Gantt) The distance of the axis title from the axis line. By
     * default, this distance is computed from the offset width of the labels,
     * the labels' distance from the axis and the title's margin. However when
     * the offset option is set, it overrides all this.
     */
    offset?: number;
    /**
     * (Highcharts) Defines how the title is repositioned according to the 3D
     * chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     *
     * - `undefined`: Will use the config from `labels.position3d`
     */
    position3d?: ("chart"|"flap"|"offset"|"ortho"|null);
    /**
     * (Highcharts, Highstock, Gantt) Whether to reserve space for the title
     * when laying out the axis.
     */
    reserveSpace?: boolean;
    /**
     * (Highstock, Gantt) The rotation of the text in degrees. 0 is horizontal,
     * 270 is vertical reading from bottom to top.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis title will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `title.position3d`.
     *
     * A `null` value will use the config from `labels.skew3d`.
     */
    skew3d?: (boolean|null);
    /**
     * (Highstock, Gantt) CSS styles for the title. If the title text is longer
     * than the axis length, it will wrap to multiple lines by default. This can
     * be customized by setting `textOverflow: 'ellipsis'`, by setting a
     * specific `width` or by setting `whiteSpace: 'nowrap'`.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-title`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highstock, Gantt) The actual text of the axis title. It can contain
     * basic HTML tags like `b`, `i` and `span` with style.
     */
    text?: (string|null);
    /**
     * (Highstock, Gantt) Alignment of the text, can be `"left"`, `"right"` or
     * `"center"`. Default alignment depends on the title.align:
     *
     * Horizontal axes:
     *
     * - for `align` = `"low"`, `textAlign` is set to `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"`, `textAlign` is set to `right`
     *
     * Vertical axes:
     *
     * - for `align` = `"low"` and `opposite` = `true`, `textAlign` is set to
     * `right`
     *
     * - for `align` = `"low"` and `opposite` = `false`, `textAlign` is set to
     * `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"` and `opposite` = `true` `textAlign` is set to
     * `left`
     *
     * - for `align` = `"high"` and `opposite` = `false` `textAlign` is set to
     * `right`
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the axis
     * title.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal pixel offset of the title
     * position.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical pixel offset of the title
     * position.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array defining breaks in the axis, the
 * sections defined will be left out and all the points shifted closer to each
 * other.
 */
export interface NavigatorYAxisBreaksOptions {
    /**
     * (Highcharts, Highstock, Gantt) A number indicating how much space should
     * be left between the start and the end of the break. The break size is
     * given in axis units, so for instance on a `datetime` axis, a break size
     * of 3600000 would indicate the equivalent of an hour.
     */
    breakSize?: number;
    /**
     * (Highcharts, Highstock, Gantt) The point where the break starts.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) Defines an interval after which the break
     * appears again. By default the breaks do not repeat.
     */
    repeat?: number;
    /**
     * (Highcharts, Highstock, Gantt) The point where the break ends.
     */
    to?: number;
}
/**
 * (Highstock, Gantt) Event handlers for the axis.
 */
export interface NavigatorYAxisEventsOptions {
    /**
     * (Highcharts, Gantt) An event fired after the breaks have rendered.
     */
    afterBreaks?: AxisEventCallbackFunction;
    /**
     * (Highstock, Gantt) As opposed to the `setExtremes` event, this event
     * fires after the final min and max values are computed and corrected for
     * `minRange`.
     *
     * Fires when the minimum and maximum is set for the axis, either by calling
     * the `.setExtremes()` method or by selecting an area in the chart. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in axis
     * values. The actual data extremes are found in `event.dataMin` and
     * `event.dataMax`.
     */
    afterSetExtremes?: AxisSetExtremesEventCallbackFunction;
    /**
     * (Highcharts, Gantt) An event fired when a break from this axis occurs on
     * a point.
     */
    pointBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) An event fired when a point falls inside a
     * break from this axis.
     */
    pointInBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highstock, Gantt) Fires when the minimum and maximum is set for the
     * axis, either by calling the `.setExtremes()` method or by selecting an
     * area in the chart. One parameter, `event`, is passed to the function,
     * containing common event information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in data
     * values. When an axis is zoomed all the way out from the "Reset zoom"
     * button, `event.min` and `event.max` are null, and the new extremes are
     * set based on `this.dataMin` and `this.dataMax`.
     */
    setExtremes?: AxisSetExtremesEventCallbackFunction;
}
/**
 * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
 */
export interface NavigatorYAxisGridOptions {
    /**
     * (Gantt) Set border color for the label grid lines.
     */
    borderColor?: ColorString;
    /**
     * (Gantt) Set border width of the label grid lines.
     */
    borderWidth?: number;
    /**
     * (Gantt) Set cell height for grid axis labels. By default this is
     * calculated from font size. This option only applies to horizontal axes.
     */
    cellHeight?: number;
    /**
     * (Gantt) Set specific options for each column (or row for horizontal axes)
     * in the grid. Each extra column/row is its own axis, and the axis options
     * can be set here.
     */
    columns?: Array<XAxisOptions>;
    /**
     * (Gantt) Enable grid on the axis labels. Defaults to true for Gantt
     * charts.
     */
    enabled?: boolean;
}
/**
 * (Gantt) Set options on specific levels in a tree grid axis. Takes precedence
 * over labels options.
 */
export interface NavigatorYAxisLabelsLevelsOptions {
    /**
     * (Gantt) Specify the level which the options within this object applies
     * to.
     */
    level?: number;
    style?: CSSObject;
}
/**
 * (Highstock, Gantt) The axis labels show the number or category for each tick.
 *
 * Since v8.0.0: Labels are animated in categorized x-axis with updating data if
 * `tickInterval` and `step` is set to 1.
 */
export interface NavigatorYAxisLabelsOptions {
    /**
     * (Highstock, Gantt) What part of the string the given position is anchored
     * to. Can be one of `"left"`, `"center"` or `"right"`. The exact position
     * also depends on the `labels.x` setting.
     *
     * Angular gauges and solid gauges defaults to `"center"`. Solid gauges with
     * two labels have additional option `"auto"` for automatic horizontal and
     * vertical alignment.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) For horizontal axes, the allowed degrees
     * of label rotation to prevent overlapping labels. If there is enough
     * space, labels are not rotated. As the chart gets narrower, it will start
     * rotating the labels -45 degrees, then remove every second label and try
     * again with rotations 0 and -45 etc. Set it to `false` to disable
     * rotation, which will cause the labels to word-wrap if possible.
     */
    autoRotation?: (false|Array<number>);
    /**
     * (Highcharts, Gantt) When each category width is more than this many
     * pixels, we don't apply auto rotation. Instead, we lay out the axis label
     * with word wrap. A lower limit makes sense when the label contains
     * multiple short words that don't extend the available horizontal space for
     * each label.
     */
    autoRotationLimit?: number;
    /**
     * (Highcharts) Angular gauges and solid gauges only. The label's pixel
     * distance from the perimeter of the plot area.
     *
     * Since v7.1.2: If it's a percentage string, it is interpreted the same as
     * series.radius, so label can be aligned under the gauge's shape.
     */
    distance?: (number|string);
    /**
     * (Highstock, Gantt) Enable or disable the axis labels.
     */
    enabled?: boolean;
    /**
     * (Highstock, Gantt) A format string for the axis label.
     */
    format?: string;
    /**
     * (Highstock, Gantt) Callback JavaScript function to format the label. The
     * value is given by `this.value`. Additional properties for `this` are
     * `axis`, `chart`, `isFirst` and `isLast`. The value of the default label
     * formatter can be retrieved by calling
     * `this.axis.defaultLabelFormatter.call(this)` within the function.
     *
     * Defaults to: (see online documentation for example)
     */
    formatter?: AxisLabelsFormatterCallbackFunction;
    /**
     * (Gantt) The number of pixels to indent the labels per level in a treegrid
     * axis.
     */
    indentation?: number;
    /**
     * (Gantt) Set options on specific levels in a tree grid axis. Takes
     * precedence over labels options.
     */
    levels?: Array<NavigatorYAxisLabelsLevelsOptions>;
    /**
     * (Highstock, Gantt) How to handle overflowing labels on horizontal axis.
     * If set to `"allow"`, it will not be aligned at all. By default it
     * `"justify"` labels inside the chart area. If there is room to move it, it
     * will be aligned to the edge, else it will be removed.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Gantt) The pixel padding for axis labels, to ensure white
     * space between them.
     */
    padding?: number;
    /**
     * (Highcharts) Defines how the labels are be repositioned according to the
     * 3D chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     */
    position3d?: OptionsPosition3dValue;
    /**
     * (Highcharts, Gantt) Whether to reserve space for the labels. By default,
     * space is reserved for the labels in these cases:
     *
     * * On all horizontal axes.
     *
     * * On vertical axes if `label.align` is `right` on a left-side axis or
     * `left` on a right-side axis.
     *
     * * On vertical axes if `label.align` is `center`.
     *
     * This can be turned off when for example the labels are rendered inside
     * the plot area instead of outside.
     */
    reserveSpace?: boolean;
    /**
     * (Highstock, Gantt) Rotation of the labels in degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis labels will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `labels.position3d`.
     */
    skew3d?: boolean;
    /**
     * (Highstock, Gantt) Horizontal axes only. The number of lines to spread
     * the labels over to make room or tighter labels.
     */
    staggerLines?: number;
    /**
     * (Highstock, Gantt) To show only every _n_'th label on the axis, set the
     * step to _n_. Setting the step to 2 shows every other label.
     *
     * By default, the step is calculated automatically to avoid overlap. To
     * prevent this, set it to 1\. This usually only happens on a category axis,
     * and is often a sign that you have chosen the wrong axis type.
     *
     * Read more at Axis docs => What axis should I use?
     */
    step?: number;
    /**
     * (Highstock, Gantt) CSS styles for the label. Use `whiteSpace: 'nowrap'`
     * to prevent wrapping of category labels. Use `textOverflow: 'none'` to
     * prevent ellipsis (dots).
     *
     * In styled mode, the labels are styled with the `.highcharts-axis-labels`
     * class.
     */
    style?: CSSObject;
    /**
     * (Gantt) The symbol for the collapse and expand icon in a treegrid.
     */
    symbol?: NavigatorYAxisLabelsSymbolOptions;
    /**
     * (Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highstock, Gantt) The x position offset of all labels relative to the
     * tick positions on the axis. Defaults to -15 for left axis, 15 for right
     * axis.
     */
    x?: number;
    /**
     * (Highstock, Gantt) The y position offset of all labels relative to the
     * tick positions on the axis. For polar and radial axis consider the use of
     * the distance option.
     */
    y?: number;
    /**
     * (Highstock, Gantt) The Z index for the axis labels.
     */
    zIndex?: number;
}
/**
 * (Gantt) The symbol for the collapse and expand icon in a treegrid.
 */
export interface NavigatorYAxisLabelsSymbolOptions {
    height?: number;
    padding?: number;
    /**
     * (Gantt) The symbol type. Points to a definition function in the
     * `Highcharts.Renderer.symbols` collection.
     */
    type?: SymbolKeyValue;
    width?: number;
    x?: number;
    y?: number;
}
/**
 * (Highstock, Gantt) Options for the navigator Y axis. Default series options
 * for the navigator yAxis are: (see online documentation for example)
 */
export interface NavigatorYAxisOptions {
    /**
     * (Highstock, Gantt) Accessibility options for an axis. Requires the
     * accessibility module.
     */
    accessibility?: AxisAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When using multiple axis, the ticks of two
     * or more opposite axes will automatically be aligned by adding ticks to
     * the axis or axes with the least ticks, as if `tickAmount` were specified.
     *
     * This can be prevented by setting `alignTicks` to false. If the grid lines
     * look messy, it's a good idea to hide them for the secondary axis by
     * setting `gridLineWidth` to 0.
     *
     * If `startOnTick` or `endOnTick` in an Axis options are set to false, then
     * the `alignTicks ` will be disabled for the Axis.
     *
     * Disabled for logarithmic axes.
     */
    alignTicks?: boolean;
    /**
     * (Highstock, Gantt) Whether to allow decimals in this axis' ticks. When
     * counting integers, like persons or hits on a web page, decimals should be
     * avoided in the labels.
     */
    allowDecimals?: boolean;
    /**
     * (Highstock, Gantt) When using an alternate grid color, a band is painted
     * across the plot area between every other grid line.
     */
    alternateGridColor?: ColorType;
    /**
     * (Highcharts) In a polar chart, this is the angle of the Y axis in
     * degrees, where 0 is up and 90 is right. The angle determines the position
     * of the axis line and the labels, though the coordinate system is
     * unaffected. Since v8.0.0 this option is also applicable for X axis
     * (inverted polar).
     */
    angle?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array defining breaks in the axis, the
     * sections defined will be left out and all the points shifted closer to
     * each other.
     */
    breaks?: Array<NavigatorYAxisBreaksOptions>;
    /**
     * (Highcharts, Gantt) If categories are present for the xAxis, names are
     * used instead of numbers for that axis.
     *
     * Since Highcharts 3.0, categories can also be extracted by giving each
     * point a name and setting axis type to `category`. However, if you have
     * multiple series, best practice remains defining the `categories` array.
     *
     * Example: `categories: ['Apples', 'Bananas', 'Oranges']`
     */
    categories?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) The highest allowed value for
     * automatically computed axis extremes.
     */
    ceiling?: number;
    /**
     * (Highstock, Gantt) A class name that opens for styling the axis by CSS,
     * especially in Highcharts styled mode. The class name is applied to group
     * elements for the grid, axis elements and labels.
     */
    className?: string;
    /**
     * (Highstock, Gantt) Configure a crosshair that follows either the mouse
     * pointer or the hovered point.
     *
     * In styled mode, the crosshairs are styled in the `.highcharts-crosshair`,
     * `.highcharts-crosshair-thin` or `.highcharts-xaxis-category` classes.
     */
    crosshair?: (boolean|AxisCrosshairOptions);
    /**
     * (Highcharts, Highstock, Gantt) For a datetime axis, the scale will
     * automatically adjust to the appropriate unit. This member gives the
     * default string representations used for each unit. For intermediate
     * values, different units may be used, for example the `day` unit can be
     * used on midnight and `hour` unit be used for intermediate values on the
     * same axis.
     *
     * For an overview of the replacement codes, see dateFormat.
     *
     * Defaults to: (see online documentation for example)
     */
    dateTimeLabelFormats?: AxisDateTimeLabelFormatsOptions;
    /**
     * (Highstock, Gantt) Whether to force the axis to end on a tick. Use this
     * option with the `maxPadding` option to control the axis end.
     *
     * This option is always disabled, when panning type is either `y` or `xy`.
     */
    endOnTick?: boolean;
    /**
     * (Highstock, Gantt) Event handlers for the axis.
     */
    events?: NavigatorYAxisEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The lowest allowed value for automatically
     * computed axis extremes.
     */
    floor?: number;
    /**
     * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
     */
    grid?: NavigatorYAxisGridOptions;
    /**
     * (Highstock, Gantt) Color of the grid lines extending the ticks across the
     * plot area.
     *
     * In styled mode, the stroke is given in the `.highcharts-grid-line` class.
     */
    gridLineColor?: ColorType;
    /**
     * (Highstock, Gantt) The dash or dot style of the grid lines. For possible
     * values, see this demonstration.
     */
    gridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Polar charts only. Whether the grid lines should draw as a
     * polygon with straight lines between categories, or as circles. Can be
     * either `circle` or `polygon`. Since v8.0.0 this option is also applicable
     * for X axis (inverted polar).
     */
    gridLineInterpolation?: OptionsGridLineInterpolationValue;
    /**
     * (Highstock, Gantt) The width of the grid lines extending the ticks across
     * the plot area.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    gridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Z index of the grid lines.
     */
    gridZIndex?: number;
    /**
     * (Highstock, Gantt) An id for the axis. This can be used after render time
     * to get a pointer to the axis object through `chart.get()`.
     */
    id?: string;
    /**
     * (Highstock, Gantt) The axis labels show the number or category for each
     * tick.
     *
     * Since v8.0.0: Labels are animated in categorized x-axis with updating
     * data if `tickInterval` and `step` is set to 1.
     */
    labels?: NavigatorYAxisLabelsOptions;
    /**
     * (Highcharts, Highstock) The left position as the horizontal axis. If it's
     * a number, it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the plot width, offset from plot area left.
     */
    left?: (number|string);
    /**
     * (Highstock, Gantt) The color of the line marking the axis itself.
     *
     * In styled mode, the line stroke is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineColor?: ColorType;
    /**
     * (Highstock, Gantt) The width of the line marking the axis itself.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineWidth?: number;
    /**
     * (Highstock, Gantt) If there are multiple axes on the same side of the
     * chart, the pixel margin between the axes. Defaults to 0 on vertical axes,
     * 15 on horizontal axes.
     */
    margin?: number;
    /**
     * (Highstock, Gantt) The maximum value of the axis. If `null`, the max
     * value is automatically calculated.
     *
     * If the endOnTick option is true, the `max` value might be rounded up.
     *
     * If a tickAmount is set, the axis may be extended beyond the set max in
     * order to reach the given number of ticks. The same may happen in a chart
     * with multiple axes, determined by chart. alignTicks, where a `tickAmount`
     * is applied internally.
     */
    max?: (number|null);
    /**
     * (Highcharts) Solid gauge only. Unless stops are set, the color to
     * represent the maximum value of the Y axis.
     */
    maxColor?: ColorType;
    /**
     * (Highcharts, Highstock, Gantt) Padding of the max value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the highest data value to appear on
     * the edge of the plot area. When the axis' `max` option is set or a max
     * extreme is set using `axis.setExtremes()`, the maxPadding will be
     * ignored.
     *
     * Also the `softThreshold` option takes precedence over `maxPadding`, so if
     * the data is tangent to the threshold, `maxPadding` may not apply unless
     * `softThreshold` is set to false.
     */
    maxPadding?: number;
    /**
     * (Highstock, Gantt) The minimum value of the axis. If `null` the min value
     * is automatically calculated.
     *
     * If the startOnTick option is true (default), the `min` value might be
     * rounded down.
     *
     * The automatically calculated minimum value is also affected by floor,
     * softMin, minPadding, minRange as well as series.threshold and
     * series.softThreshold.
     */
    min?: (number|null);
    /**
     * (Highcharts) Solid gauge only. Unless stops are set, the color to
     * represent the minimum value of the Y axis.
     */
    minColor?: ColorType;
    /**
     * (Highstock, Gantt) Color of the minor, secondary grid lines.
     *
     * In styled mode, the stroke width is given in the
     * `.highcharts-minor-grid-line` class.
     */
    minorGridLineColor?: ColorType;
    /**
     * (Highstock, Gantt) The dash or dot style of the minor grid lines. For
     * possible values, see this demonstration.
     */
    minorGridLineDashStyle?: DashStyleValue;
    /**
     * (Highstock, Gantt) Width of the minor, secondary grid lines.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    minorGridLineWidth?: number;
    /**
     * (Highstock, Gantt) Color for the minor tick marks.
     */
    minorTickColor?: ColorType;
    /**
     * (Highstock, Gantt) Specific tick interval in axis units for the minor
     * ticks. On a linear axis, if `"auto"`, the minor tick interval is
     * calculated as a fifth of the tickInterval. If `null` or `undefined`,
     * minor ticks are not shown.
     *
     * On logarithmic axes, the unit is the power of the value. For example,
     * setting the minorTickInterval to 1 puts one tick on each of 0.1, 1, 10,
     * 100 etc. Setting the minorTickInterval to 0.1 produces 9 ticks between 1
     * and 10, 10 and 100 etc.
     *
     * If user settings dictate minor ticks to become too dense, they don't make
     * sense, and will be ignored to prevent performance problems.
     */
    minorTickInterval?: (number|string|null);
    /**
     * (Highstock, Gantt) The pixel length of the minor tick marks.
     */
    minorTickLength?: number;
    /**
     * (Highstock, Gantt) The position of the minor tick marks relative to the
     * axis line. Can be one of `inside` and `outside`.
     */
    minorTickPosition?: OptionsMinorTickPositionValue;
    /**
     * (Highstock, Gantt) Enable or disable minor ticks. Unless
     * minorTickInterval is set, the tick interval is calculated as a fifth of
     * the `tickInterval`.
     *
     * On a logarithmic axis, minor ticks are laid out based on a best guess,
     * attempting to enter approximately 5 minor ticks between each major tick.
     *
     * Prior to v6.0.0, ticks were unabled in auto layout by setting
     * `minorTickInterval` to `"auto"`.
     */
    minorTicks?: boolean;
    /**
     * (Highstock, Gantt) The pixel width of the minor tick mark.
     */
    minorTickWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Padding of the min value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the lowest data value to appear on the
     * edge of the plot area. When the axis' `min` option is set or a max
     * extreme is set using `axis.setExtremes()`, the maxPadding will be
     * ignored.
     *
     * Also the `softThreshold` option takes precedence over `minPadding`, so if
     * the data is tangent to the threshold, `minPadding` may not apply unless
     * `softThreshold` is set to false.
     */
    minPadding?: number;
    /**
     * (Highstock, Gantt) The minimum tick interval allowed in axis values. For
     * example on zooming in on an axis with daily data, this can be used to
     * prevent the axis from showing hours. Defaults to the closest distance
     * between two points on the axis.
     */
    minTickInterval?: number;
    /**
     * (Highstock, Gantt) The distance in pixels from the plot area to the axis
     * line. A positive offset moves the axis with it's line, labels and ticks
     * away from the plot area. This is typically used when two or more axes are
     * displayed on the same side of the plot. With multiple axes the offset is
     * dynamically adjusted to avoid collision, this can be overridden by
     * setting offset explicitly.
     */
    offset?: number;
    /**
     * (Highstock, Highcharts, Gantt) Whether to display the axis on the
     * opposite side of the normal. The normal is on the left side for vertical
     * axes and bottom for horizontal, so the opposite sides will be right and
     * top respectively. This is typically used with dual or multiple axes.
     */
    opposite?: boolean;
    /**
     * (Highcharts) Refers to the index in the panes array. Used for circular
     * gauges and polar charts. When the option is not set then first pane will
     * be used.
     */
    pane?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array of colored bands stretching
     * across the plot area marking an interval on the axis.
     *
     * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
     * class in addition to the `className` option.
     */
    plotBands?: Array<NavigatorYAxisPlotBandsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) An array of lines stretching across the
     * plot area, marking a specific value on one of the axes.
     *
     * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
     * class in addition to the `className` option.
     */
    plotLines?: Array<NavigatorYAxisPlotLinesOptions>;
    /**
     * (Highstock, Gantt) Whether to reverse the axis so that the highest number
     * is closest to the origin.
     */
    reversed?: boolean;
    /**
     * (Highcharts, Highstock) If `true`, the first series in a stack will be
     * drawn on top in a positive, non-reversed Y axis. If `false`, the first
     * series is in the base of the stack.
     */
    reversedStacks?: boolean;
    /**
     * (Highstock, Gantt) Whether to show the first tick label.
     */
    showFirstLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to show the last tick label.
     * Defaults to `true` on cartesian charts, and `false` on polar charts.
     */
    showLastLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A soft maximum for the axis. If the series
     * data maximum is less than this, the axis will stay at this maximum, but
     * if the series data maximum is higher, the axis will flex to show all
     * data.
     *
     * **Note**: The series.softThreshold option takes precedence over this
     * option.
     */
    softMax?: number;
    /**
     * (Highcharts, Highstock, Gantt) A soft minimum for the axis. If the series
     * data minimum is greater than this, the axis will stay at this minimum,
     * but if the series data minimum is lower, the axis will flex to show all
     * data.
     *
     * **Note**: The series.softThreshold option takes precedence over this
     * option.
     */
    softMin?: number;
    /**
     * (Highcharts) The stack labels show the total value for each bar in a
     * stacked column or bar chart. The label will be placed on top of positive
     * columns and below negative columns. In case of an inverted column chart
     * or a bar chart the label is placed to the right of positive bars and to
     * the left of negative bars.
     */
    stackLabels?: NavigatorYAxisStackLabelsOptions;
    /**
     * (Highcharts, Highstock, Gantt) For datetime axes, this decides where to
     * put the tick between weeks. 0 = Sunday, 1 = Monday.
     */
    startOfWeek?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether to force the axis to start on a
     * tick. Use this option with the `maxPadding` option to control the axis
     * start.
     *
     * This option is always disabled, when panning type is either `y` or `xy`.
     */
    startOnTick?: boolean;
    /**
     * (Gantt) For vertical axes only. Setting the static scale ensures that
     * each tick unit is translated into a fixed pixel height. For example,
     * setting the static scale to 24 results in each Y axis category taking up
     * 24 pixels, and the height of the chart adjusts. Adding or removing items
     * will make the chart resize.
     */
    staticScale?: number;
    /**
     * (Highcharts) Solid gauge series only. Color stops for the solid gauge.
     * Use this in cases where a linear gradient between a `minColor` and
     * `maxColor` is not sufficient. The stops is an array of tuples, where the
     * first item is a float between 0 and 1 assigning the relative position in
     * the gradient, and the second item is the color.
     *
     * For solid gauges, the Y axis also inherits the concept of data classes
     * from the Highmaps color axis.
     */
    stops?: Array<[number, ColorType]>;
    /**
     * (Highcharts, Highstock, Gantt) The amount of ticks to draw on the axis.
     * This opens up for aligning the ticks of multiple charts or panes within a
     * chart. This option overrides the `tickPixelInterval` option.
     *
     * This option only has an effect on linear axes. Datetime, logarithmic or
     * category axes are not affected.
     */
    tickAmount?: number;
    /**
     * (Highstock, Gantt) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: ColorType;
    /**
     * (Highstock, Gantt) The interval of the tick marks in axis units. When
     * `undefined`, the tick interval is computed to approximately follow the
     * tickPixelInterval on linear and datetime axes. On categorized axes, a
     * `undefined` tickInterval will default to 1, one category. Note that
     * datetime axes are based on milliseconds, so for example an interval of
     * one day is expressed as `24 * 3600 * 1000`.
     *
     * On logarithmic axes, the tickInterval is based on powers, so a
     * tickInterval of 1 means one tick on each of 0.1, 1, 10, 100 etc. A
     * tickInterval of 2 means a tick of 0.1, 10, 1000 etc. A tickInterval of
     * 0.2 puts a tick on 0.1, 0.2, 0.4, 0.6, 0.8, 1, 2, 4, 6, 8, 10, 20, 40
     * etc.
     *
     * If the tickInterval is too dense for labels to be drawn, Highcharts may
     * remove ticks.
     *
     * If the chart has multiple axes, the alignTicks option may interfere with
     * the `tickInterval` setting.
     */
    tickInterval?: number;
    /**
     * (Highstock, Gantt) The pixel length of the main tick marks.
     */
    tickLength?: number;
    /**
     * (Highcharts, Gantt) For categorized axes only. If `on` the tick mark is
     * placed in the center of the category, if `between` the tick mark is
     * placed between categories. The default is `between` if the `tickInterval`
     * is 1, else `on`.
     */
    tickmarkPlacement?: OptionsTickmarkPlacementValue;
    /**
     * (Highstock, Gantt) If tickInterval is `null` this option sets the
     * approximate pixel interval of the tick marks. Not applicable to
     * categorized axis.
     *
     * The tick interval is also influenced by the minTickInterval option, that,
     * by default prevents ticks from being denser than the data points.
     */
    tickPixelInterval?: number;
    /**
     * (Highstock, Gantt) The position of the major tick marks relative to the
     * axis line. Can be one of `inside` and `outside`.
     */
    tickPosition?: OptionsTickPositionValue;
    /**
     * (Highstock, Gantt) A callback function returning array defining where the
     * ticks are laid out on the axis. This overrides the default behaviour of
     * tickPixelInterval and tickInterval. The automatic tick positions are
     * accessible through `this.tickPositions` and can be modified by the
     * callback.
     */
    tickPositioner?: AxisTickPositionerCallbackFunction;
    /**
     * (Highstock, Gantt) An array defining where the ticks are laid out on the
     * axis. This overrides the default behaviour of tickPixelInterval and
     * tickInterval.
     */
    tickPositions?: Array<number>;
    /**
     * (Highcharts, Highstock, Gantt) The pixel width of the major tick marks.
     */
    tickWidth?: number;
    /**
     * (Highstock, Gantt) The axis title, showing next to the axis line.
     */
    title?: NavigatorYAxisTitleOptions;
    /**
     * (Highcharts) Parallel coordinates only. Format that will be used for
     * point.y and available in tooltip.pointFormat as `{point.formattedValue}`.
     * If not set, `{point.formattedValue}` will use other options, in this
     * order:
     *
     * 1. yAxis.labels.format will be used if set
     *
     * 2. If yAxis is a category, then category name will be displayed
     *
     * 3. If yAxis is a datetime, then value will use the same format as yAxis
     * labels
     *
     * 4. If yAxis is linear/logarithmic type, then simple value will be used
     */
    tooltipValueFormat?: string;
    /**
     * (Highcharts, Gantt) The type of axis. Can be one of `linear`,
     * `logarithmic`, `datetime`, `category` or `treegrid`. Defaults to
     * `treegrid` for Gantt charts, `linear` for other chart types.
     *
     * In a datetime axis, the numbers are given in milliseconds, and tick marks
     * are placed on appropriate values, like full hours or days. In a category
     * or treegrid axis, the point names of the chart's series are used for
     * categories, if a categories array is not defined.
     */
    type?: AxisTypeValue;
    /**
     * (Highcharts, Gantt) Applies only when the axis `type` is `category`. When
     * `uniqueNames` is true, points are placed on the X axis according to their
     * names. If the same point name is repeated in the same or another series,
     * the point is placed on the same X position as other points of the same
     * name. When `uniqueNames` is false, the points are laid out in increasing
     * X positions regardless of their names, and the X axis category will take
     * the name of the last point in each position.
     */
    uniqueNames?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether axis, including axis title, line,
     * ticks and labels, should be visible.
     */
    visible?: boolean;
    /**
     * (Highcharts, Highstock) The width as the horizontal axis. If it's a
     * number, it is interpreted as pixels.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the total plot width.
     */
    width?: (number|string);
    /**
     * (Highstock, Gantt) Whether to zoom axis. If `chart.zoomType` is set, the
     * option allows to disable zooming on an individual axis.
     */
    zoomEnabled?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * band. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface NavigatorYAxisPlotBandsEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface NavigatorYAxisPlotBandsLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees .
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-band-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The string text itself. A subset of HTML
     * is supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot band. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of colored bands stretching across
 * the plot area marking an interval on the axis.
 *
 * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
 * class in addition to the `className` option.
 */
export interface NavigatorYAxisPlotBandsOptions {
    /**
     * (Highstock) Flag to decide if plotBand should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Border color for the plot band. Also
     * requires `borderWidth` to be set.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) Border width for the plot band. Also
     * requires `borderColor` to be set.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-band`, to apply to each individual band.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the plot band.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot band. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: NavigatorYAxisPlotBandsEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The start position of the plot band in
     * axis units.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot band
     * in Axis.removePlotBand.
     */
    id?: string;
    /**
     * (Highcharts) In a gauge chart, this option determines the inner radius of
     * the plot band that stretches along the perimeter. It can be given as a
     * percentage string, like `"100%"`, or as a pixel number, like `100`. By
     * default, the inner radius is controlled by the thickness option.
     */
    innerRadius?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: NavigatorYAxisPlotBandsLabelOptions;
    /**
     * (Highcharts) In a gauge chart, this option determines the outer radius of
     * the plot band that stretches along the perimeter. It can be given as a
     * percentage string, like `"100%"`, or as a pixel number, like `100`.
     */
    outerRadius?: (number|string);
    /**
     * (Highcharts) In a gauge chart, this option sets the width of the plot
     * band stretching along the perimeter. It can be given as a percentage
     * string, like `"10%"`, or as a pixel number, like `10`. The default value
     * 10 is the same as the default tickLength, thus making the plot band act
     * as a background for the tick markers.
     */
    thickness?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The end position of the plot band in axis
     * units.
     */
    to?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot band within the
     * chart, relative to other elements. Using the same z index as another
     * element may give unpredictable results, as the last rendered element will
     * be on top. Values from 0 to 20 make sense.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * line. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface NavigatorYAxisPlotLinesEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface NavigatorYAxisPlotLinesLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Callback JavaScript function to format the
     * label. Useful properties like the value of plot line or the range of plot
     * band (`from` & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees.
     * Defaults to 0 for horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The text itself. A subset of HTML is
     * supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot line. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of lines stretching across the plot
 * area, marking a specific value on one of the axes.
 *
 * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
 * class in addition to the `className` option.
 */
export interface NavigatorYAxisPlotLinesOptions {
    /**
     * (Highstock) Flag to decide if plotLine should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-line`, to apply to each individual line.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the line.
     */
    color?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) The dashing or dot style for the plot
     * line. For possible values see this overview.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot line. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: NavigatorYAxisPlotLinesEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot line
     * in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: NavigatorYAxisPlotLinesLabelOptions;
    /**
     * (Highcharts, Highstock, Gantt) The position of the line in axis units.
     */
    value?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width or thickness of the plot line.
     */
    width?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot line within the
     * chart.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `stackLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface NavigatorYAxisStackLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * stackLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) The stack labels show the total value for each bar in a stacked
 * column or bar chart. The label will be placed on top of positive columns and
 * below negative columns. In case of an inverted column chart or a bar chart
 * the label is placed to the right of positive bars and to the left of negative
 * bars.
 */
export interface NavigatorYAxisStackLabelsOptions {
    /**
     * (Highcharts) Defines the horizontal alignment of the stack total label.
     * Can be one of `"left"`, `"center"` or `"right"`. The default value is
     * calculated at runtime and depends on orientation and whether the stack is
     * positive or negative.
     */
    align?: AlignValue;
    /**
     * (Highcharts) Allow the stack labels to overlap.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed for the `stackLabels`. The animation can also be set as a
     * configuration object. Please note that this option only applies to the
     * initial animation. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|NavigatorYAxisStackLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The background color or gradient for the stack label.
     */
    backgroundColor?: ColorType;
    /**
     * (Highcharts) The border color for the stack label. Defaults to
     * `undefined`.
     */
    borderColor?: ColorType;
    /**
     * (Highcharts) The border radius in pixels for the stack label.
     */
    borderRadius?: number;
    /**
     * (Highcharts) The border width in pixels for the stack label.
     */
    borderWidth?: number;
    /**
     * (Highcharts) Whether to hide stack labels that are outside the plot area.
     * By default, the stack label is moved inside the plot area according to
     * the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts) Enable or disable the stack total labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) A format string for the data label. Available
     * variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts) Callback JavaScript function to format the label. The value
     * is given by `this.total`.
     */
    formatter?: FormatterCallbackFunction<StackItemObject>;
    /**
     * (Highcharts) How to handle stack total labels that flow outside the plot
     * area. The default is set to `"justify"`, which aligns them inside the
     * plot area. For columns and bars, this means it will be moved inside the
     * bar. To display stack labels outside the plot area, set `crop` to `false`
     * and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts) Rotation of the labels in degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) CSS styles for the label.
     *
     * In styled mode, the styles are set in the `.highcharts-stack-label`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts) The text alignment for the label. While `align` determines
     * where the texts anchor point is placed with regards to the stack,
     * `textAlign` determines how the text is aligned against its anchor point.
     * Possible values are `"left"`, `"center"` and `"right"`. The default value
     * is calculated at runtime and depends on orientation and whether the stack
     * is positive or negative.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts) Defines the vertical alignment of the stack total label. Can
     * be one of `"top"`, `"middle"` or `"bottom"`. The default value is
     * calculated at runtime and depends on orientation and whether the stack is
     * positive or negative.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts) The x position offset of the label relative to the left of
     * the stacked bar. The default value is calculated at runtime and depends
     * on orientation and whether the stack is positive or negative.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of the label relative to the tick
     * position on the axis. The default value is calculated at runtime and
     * depends on orientation and whether the stack is positive or negative.
     */
    y?: number;
}
/**
 * (Highstock, Gantt) The axis title, showing next to the axis line.
 */
export interface NavigatorYAxisTitleOptions {
    /**
     * (Highstock, Gantt) Alignment of the title relative to the axis values.
     * Possible values are "low", "middle" or "high".
     */
    align?: AxisTitleAlignValue;
    /**
     * (Highstock, Gantt) The pixel distance between the axis labels and the
     * title. Positive values are outside the axis line, negative are inside.
     */
    margin?: number;
    /**
     * (Highstock, Gantt) The distance of the axis title from the axis line. By
     * default, this distance is computed from the offset width of the labels,
     * the labels' distance from the axis and the title's margin. However when
     * the offset option is set, it overrides all this.
     */
    offset?: number;
    /**
     * (Highcharts) Defines how the title is repositioned according to the 3D
     * chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     *
     * - `undefined`: Will use the config from `labels.position3d`
     */
    position3d?: ("chart"|"flap"|"offset"|"ortho"|null);
    /**
     * (Highcharts, Highstock, Gantt) Whether to reserve space for the title
     * when laying out the axis.
     */
    reserveSpace?: boolean;
    /**
     * (Highstock, Gantt) The rotation of the text in degrees. 0 is horizontal,
     * 270 is vertical reading from bottom to top.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis title will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `title.position3d`.
     *
     * A `null` value will use the config from `labels.skew3d`.
     */
    skew3d?: (boolean|null);
    /**
     * (Highstock, Gantt) CSS styles for the title. If the title text is longer
     * than the axis length, it will wrap to multiple lines by default. This can
     * be customized by setting `textOverflow: 'ellipsis'`, by setting a
     * specific `width` or by setting `whiteSpace: 'nowrap'`.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-title`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The actual text of the axis title.
     * Horizontal texts can contain HTML, but rotated texts are painted using
     * vector techniques and must be clean text. The Y axis title is disabled by
     * setting the `text` option to `undefined`.
     */
    text?: (string|null);
    /**
     * (Highstock, Gantt) Alignment of the text, can be `"left"`, `"right"` or
     * `"center"`. Default alignment depends on the title.align:
     *
     * Horizontal axes:
     *
     * - for `align` = `"low"`, `textAlign` is set to `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"`, `textAlign` is set to `right`
     *
     * Vertical axes:
     *
     * - for `align` = `"low"` and `opposite` = `true`, `textAlign` is set to
     * `right`
     *
     * - for `align` = `"low"` and `opposite` = `false`, `textAlign` is set to
     * `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"` and `opposite` = `true` `textAlign` is set to
     * `left`
     *
     * - for `align` = `"high"` and `opposite` = `false` `textAlign` is set to
     * `right`
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the axis
     * title.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal pixel offset of the title
     * position.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical pixel offset of the title
     * position.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Options for displaying a message like "No data
 * to display". This feature requires the file no-data-to-display.js to be
 * loaded in the page. The actual text to display is set in the lang.noData
 * option.
 */
export interface NoDataOptions {
    /**
     * (Highcharts, Highstock, Gantt) An object of additional SVG attributes for
     * the no-data label.
     */
    attr?: SVGAttributes;
    /**
     * (Highcharts, Highstock, Gantt) The position of the no-data label,
     * relative to the plot area.
     */
    position?: (AlignObject|NoDataPositionOptions);
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the no-data label.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether to insert the label as HTML, or as
     * pseudo-HTML rendered with SVG.
     */
    useHTML?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) The position of the no-data label, relative to
 * the plot area.
 */
export interface NoDataPositionOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal offset of the label, in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical offset of the label, in pixels.
     */
    y?: number;
}
/**
 * An object containing `left` and `top` properties for the position in the
 * page.
 */
export interface OffsetObject {
    /**
     * Left distance to the page border.
     */
    left: number;
    /**
     * Top distance to the page border.
     */
    top: number;
}
export interface Options {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for configuring
     * accessibility for the chart. Requires the accessibility module to be
     * loaded. For a description of the module and information on its features,
     * see Highcharts Accessibility.
     */
    accessibility?: AccessibilityOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A basic type of an annotation.
     * It allows to add custom labels or shapes. The items can be tied to
     * points, axis coordinates or chart pixel coordinates.
     */
    annotations?: Array<AnnotationsOptions>;
    boost?: BoostOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The chart's caption, which will
     * render below the chart and will be part of exported charts. The caption
     * can be updated after chart initialization through the `Chart.update` or
     * `Chart.caption.update` methods.
     */
    caption?: CaptionOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) General options for the chart.
     */
    chart?: ChartOptions;
    /**
     * (Highcharts, Highstock, Highmaps) A color axis for series. Visually, the
     * color axis will appear as a gradient or as separate items inside the
     * legend, depending on whether the axis is scalar or based on data classes.
     *
     * For supported color formats, see the docs article about colors.
     *
     * A scalar color axis is represented by a gradient. The colors either range
     * between the minColor and the maxColor, or for more fine grained control
     * the colors can be defined in stops. Often times, the color axis needs to
     * be adjusted to get the right color spread for the data. In addition to
     * stops, consider using a logarithmic axis type, or setting min and max to
     * avoid the colors being determined by outliers.
     *
     * When dataClasses are used, the ranges are subdivided into separate
     * classes like categories based on their values. This can be used for
     * ranges between two values, but also for a true category. However, when
     * your data is categorized, it may be as convenient to add each category to
     * a separate series.
     *
     * Color axis does not work with: `sankey`, `sunburst`, `dependencywheel`,
     * `networkgraph`, `wordcloud`, `venn`, `gauge` and `solidgauge` series
     * types.
     *
     * Since v7.2.0 `colorAxis` can also be an array of options objects.
     *
     * See the Axis object for programmatic access to the axis.
     */
    colorAxis?: (ColorAxisOptions|Array<ColorAxisOptions>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array containing the default
     * colors for the chart's series. When all colors are used, new colors are
     * pulled from the start again.
     *
     * Default colors can also be set on a series or series.type basis, see
     * column.colors, pie.colors.
     *
     * In styled mode, the colors option doesn't exist. Instead, colors are
     * defined in CSS and applied either through series or point class names, or
     * through the chart.colorCount option.
     *
     * ### Legacy
     *
     * In Highcharts 3.x, the default colors were: (see online documentation for
     * example)
     *
     * In Highcharts 2.x, the default colors were: (see online documentation for
     * example)
     */
    colors?: Array<ColorString>;
    /**
     * (Gantt) The Pathfinder module allows you to define connections between
     * any two points, represented as lines - optionally with markers for the
     * start and/or end points. Multiple algorithms are available for
     * calculating how the connecting lines are drawn.
     *
     * Connector functionality requires Highcharts Gantt to be loaded. In Gantt
     * charts, the connectors are used to draw dependencies between tasks.
     */
    connectors?: ConnectorsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Highchart by default puts a
     * credits label in the lower right corner of the chart. This can be changed
     * using these options.
     */
    credits?: CreditsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Data module provides a
     * simplified interface for adding data to a chart from sources like CVS,
     * HTML tables or grid views. See also the tutorial article on the Data
     * module.
     *
     * It requires the `modules/data.js` file to be loaded.
     *
     * Please note that the default way of adding data in Highcharts, without
     * the need of a module, is through the series._type_.data option.
     */
    data?: DataOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for configuring markers
     * for annotations.
     *
     * An example of the arrow marker: (see online documentation for example)
     */
    defs?: (DefsOptions|Dictionary<SVGDefinitionObject>);
    /**
     * (Highcharts, Highmaps) Options for drill down, the concept of inspecting
     * increasingly high resolution data through clicking on chart items like
     * columns or pie slices.
     *
     * The drilldown feature requires the drilldown.js file to be loaded, found
     * in the modules directory of the download package, or online at
     * code.highcharts.com/modules/drilldown.js.
     */
    drilldown?: DrilldownOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the exporting
     * module. For an overview on the matter, see the docs.
     */
    exporting?: ExportingOptions;
    global?: GlobalOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Language object. The language
     * object is global and it can't be set on each chart initialization.
     * Instead, use `Highcharts.setOptions` to set it before any chart is
     * initialized. (see online documentation for example)
     */
    lang?: LangOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The legend is a box containing a
     * symbol and name for each series item or point item in the chart. Each
     * series (or points in case of pie charts) is represented by a symbol and
     * its name in the legend.
     *
     * It is possible to override the symbol creator function and create custom
     * legend symbols.
     */
    legend?: LegendOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The loading options control the
     * appearance of the loading screen that covers the plot area on chart
     * operations. This screen only appears after an explicit call to
     * `chart.showLoading()`. It is a utility for developers to communicate to
     * the end user that something is going on, for example while retrieving new
     * data via an XHR connection. The "Loading..." text itself is not part of
     * this configuration object, but part of the `lang` object.
     */
    loading?: LoadingOptions;
    mapNavigation?: MapNavigationOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A collection of options for
     * buttons and menus appearing in the exporting module.
     */
    navigation?: NavigationOptions;
    /**
     * (Highstock, Gantt) The navigator is a small series below the main series,
     * displaying a view of the entire data set. It provides tools to zoom in
     * and out on parts of the data as well as panning across the dataset.
     */
    navigator?: NavigatorOptions;
    /**
     * (Highcharts, Highstock, Gantt) Options for displaying a message like "No
     * data to display". This feature requires the file no-data-to-display.js to
     * be loaded in the page. The actual text to display is set in the
     * lang.noData option.
     */
    noData?: NoDataOptions;
    /**
     * (Highcharts) The pane serves as a container for axes and backgrounds for
     * circular gauges and polar charts.
     */
    pane?: PaneOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The plotOptions is a wrapper
     * object for config objects for each series type. The config objects for
     * each series can also be overridden for each series item as given in the
     * series array.
     *
     * Configuration options for the series are given in three levels. Options
     * for all series in a chart are given in the plotOptions.series object.
     * Then options for all series of a specific type are given in the
     * plotOptions of that type, for example `plotOptions.line`. Next, options
     * for one single series are given in the series array.
     */
    plotOptions?: PlotOptions;
    /**
     * (Highstock, Gantt) The range selector is a tool for selecting ranges to
     * display within the chart. It provides buttons to select preconfigured
     * ranges in the chart, like 1 day, 1 week, 1 month etc. It also provides
     * input boxes where min and max dates can be manually input.
     */
    rangeSelector?: RangeSelectorOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Allows setting a set of rules to
     * apply for different screen or chart sizes. Each rule specifies additional
     * chart options.
     */
    responsive?: ResponsiveOptions;
    /**
     * (Highstock, Gantt) The scrollbar is a means of panning over the X axis of
     * a stock chart. Scrollbars can also be applied to other types of axes.
     *
     * Another approach to scrollable charts is the chart.scrollablePlotArea
     * option that is especially suitable for simpler cartesian charts on
     * mobile.
     *
     * In styled mode, all the presentational options for the scrollbar are
     * replaced by the classes `.highcharts-scrollbar-thumb`,
     * `.highcharts-scrollbar-arrow`, `.highcharts-scrollbar-button`,
     * `.highcharts-scrollbar-rifles` and `.highcharts-scrollbar-track`.
     */
    scrollbar?: ScrollbarOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Series options for specific data
     * and the data itself. In TypeScript you have to cast the series options to
     * specific series types, to get all possible options for a series.
     */
    series?: Array<SeriesOptionsType>;
    /**
     * (Highstock) Configure the stockTools gui strings in the chart. Requires
     * the [stockTools module]() to be loaded. For a description of the module
     * and information on its features, see [Highcharts StockTools]().
     */
    stockTools?: StockToolsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The chart's subtitle. This can
     * be used both to display a subtitle below the main title, and to display
     * random text anywhere in the chart. The subtitle can be updated after
     * chart initialization through the `Chart.setTitle` method.
     */
    subtitle?: SubtitleOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Time options that can apply
     * globally or to individual charts. These settings affect how `datetime`
     * axes are laid out, how tooltips are formatted, how series
     * pointIntervalUnit works and how the Highstock range selector handles
     * time.
     *
     * The common use case is that all charts in the same Highcharts object
     * share the same time settings, in which case the global settings are set
     * using `setOptions`. (see online documentation for example)
     *
     * Since v6.0.5, the time options were moved from the `global` obect to the
     * `time` object, and time options can be set on each individual chart.
     */
    time?: TimeOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The chart's main title.
     */
    title?: TitleOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the tooltip that
     * appears when the user hovers over a series or point.
     */
    tooltip?: TooltipOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The X axis or category axis.
     * Normally this is the horizontal axis, though if the chart is inverted
     * this is the vertical axis. In case of multiple axes, the xAxis node is an
     * array of configuration objects.
     *
     * See the Axis class for programmatic access to the axis.
     */
    xAxis?: (XAxisOptions|Array<XAxisOptions>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Y axis or value axis.
     * Normally this is the vertical axis, though if the chart is inverted this
     * is the horizontal axis. In case of multiple axes, the yAxis node is an
     * array of configuration objects.
     *
     * See the Axis object for programmatic access to the axis.
     */
    yAxis?: (YAxisOptions|Array<YAxisOptions>);
    /**
     * (Highcharts) The Z axis or depth axis for 3D plots.
     *
     * See the Axis class for programmatic access to the axis.
     */
    zAxis?: (ZAxisOptions|Array<ZAxisOptions>);
}
/**
 * (Highcharts) An array of background items for the pane.
 */
export interface PaneBackgroundOptions {
    /**
     * (Highcharts) The background color or gradient for the pane.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The pane background border color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The pixel border width of the pane background.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The class name for this background.
     */
    className?: string;
    /**
     * (Highcharts) The inner radius of the pane background. Can be either
     * numeric (pixels) or a percentage string.
     */
    innerRadius?: (number|string);
    /**
     * (Highcharts) The outer radius of the circular pane background. Can be
     * either numeric (pixels) or a percentage string.
     */
    outerRadius?: (number|string);
    /**
     * (Highcharts) The shape of the pane background. When `solid`, the
     * background is circular. When `arc`, the background extends only from the
     * min to the max of the value axis.
     */
    shape?: PaneBackgroundShapeValue;
}
/**
 * (Highcharts) The pane serves as a container for axes and backgrounds for
 * circular gauges and polar charts.
 */
export interface PaneOptions {
    /**
     * (Highcharts) An array of background items for the pane.
     */
    background?: Array<PaneBackgroundOptions>;
    /**
     * (Highcharts) The center of a polar chart or angular gauge, given as an
     * array of [x, y] positions. Positions can be given as integers that
     * transform to pixels, or as percentages of the plot area size.
     */
    center?: Array<(string|number)>;
    /**
     * (Highcharts) The end angle of the polar X axis or gauge value axis, given
     * in degrees where 0 is north. Defaults to startAngle
     *
     * + 360.
     */
    endAngle?: number;
    /**
     * (Highcharts) The inner size of the pane, either as a number defining
     * pixels, or a percentage defining a percentage of the pane's size.
     */
    innerSize?: (number|string);
    /**
     * (Highcharts) The size of the pane, either as a number defining pixels, or
     * a percentage defining a percentage of the available plot area (the
     * smallest of the plot height or plot width).
     */
    size?: (number|string);
    /**
     * (Highcharts) The start angle of the polar X axis or gauge axis, given in
     * degrees where 0 is north. Defaults to 0.
     */
    startAngle?: number;
}
/**
 * Holds a pattern definition.
 */
export interface PatternObject {
    /**
     * Animation options for the image pattern loading.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * Pattern options
     */
    pattern: PatternOptionsObject;
    /**
     * Optionally an index referencing which pattern to use. Highcharts adds 10
     * default patterns to the `Highcharts.patterns` array. Additional pattern
     * definitions can be pushed to this array if desired. This option is an
     * index into this array.
     */
    patternIndex?: number;
}
/**
 * Pattern options
 */
export interface PatternOptionsObject {
    /**
     * For automatically calculated width and height on images, it is possible
     * to set an aspect ratio. The image will be zoomed to fill the bounding
     * box, maintaining the aspect ratio defined.
     */
    aspectRatio: number;
    /**
     * Background color for the pattern if a `path` is set (not images).
     */
    backgroundColor: ColorString;
    /**
     * Pattern color, used as default path stroke.
     */
    color: ColorString;
    /**
     * Analogous to pattern.width.
     */
    height: number;
    /**
     * ID to assign to the pattern. This is automatically computed if not added,
     * and identical patterns are reused. To refer to an existing pattern for a
     * Highcharts color, use `color: "url(#pattern-id)"`.
     */
    id?: string;
    /**
     * URL to an image to use as the pattern.
     */
    image: string;
    /**
     * Opacity of the pattern as a float value from 0 to 1.
     */
    opacity: number;
    /**
     * Either an SVG path as string, or an object. As an object, supply the path
     * string in the `path.d` property. Other supported properties are standard
     * SVG attributes like `path.stroke` and `path.fill`. If a path is supplied
     * for the pattern, the `image` property is ignored.
     */
    path: (string|SVGAttributes);
    /**
     * SVG `patternTransform` to apply to the entire pattern.
     */
    patternTransform: string;
    /**
     * Width of the pattern. For images this is automatically set to the width
     * of the element bounding box if not supplied. For non-image patterns the
     * default is 32px. Note that automatic resizing of image patterns to fill a
     * bounding box dynamically is only supported for patterns with an
     * automatically calculated ID.
     */
    width: number;
    /**
     * Horizontal offset of the pattern. Defaults to 0.
     */
    x?: number;
    /**
     * Vertical offset of the pattern. Defaults to 0.
     */
    y?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAbandsAnimationOptions {
    defer?: number;
}
export interface PlotAbandsBottomLineOptions {
    styles?: PlotAbandsBottomLineStylesOptions;
}
export interface PlotAbandsBottomLineStylesOptions {
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAbandsDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotAbandsDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotAbandsDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAbandsDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Acceleration bands (ABANDS). This series requires the `linkedTo`
 * option to be set and should be loaded after the
 * `stock/indicators/indicators.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `abands` series are defined in plotOptions.abands.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAbandsOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAbandsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    bottomLine?: PlotAbandsBottomLineOptions;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotAbandsDataLabelsOptions|Array<PlotAbandsDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAbandsDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotAbandsParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    topLine?: PlotAbandsTopLineOptions;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotAbandsParamsOptions {
    /**
     * (Highstock) The algorithms factor value used to calculate bands.
     */
    factor?: number;
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
export interface PlotAbandsTopLineOptions {
    styles?: PlotAbandsTopLineStylesOptions;
}
export interface PlotAbandsTopLineStylesOptions {
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAdAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAdDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotAdDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotAdDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAdDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Accumulation Distribution (AD). This series requires `linkedTo`
 * option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ad` series are defined in plotOptions.ad.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAdOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAdAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotAdDataLabelsOptions|Array<PlotAdDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAdDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotAdParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotAdParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) The id of volume series which is mandatory. For example using
     * OHLC data, volumeSeriesID='volume' means the indicator will be calculated
     * using OHLC and volume values.
     */
    volumeSeriesID?: string;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAoAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAoDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotAoDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotAoDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAoDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Awesome Oscillator. This series requires the `linkedTo` option to
 * be set and should be loaded after the `stock/indicators/indicators.js`
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ao` series are defined in plotOptions.ao.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAoOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAoAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotAoDataLabelsOptions|Array<PlotAoDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAoDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) Color of the Awesome oscillator series bar that is greater
     * than the previous one. Note that if a `color` is defined, the `color`
     * takes precedence and the `greaterBarColor` is ignored.
     */
    greaterBarColor?: (ColorString|GradientColorObject|PatternObject);
    groupPadding?: number;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Color of the Awesome oscillator series bar that is lower than
     * the previous one. Note that if a `color` is defined, the `color` takes
     * precedence and the `lowerBarColor` is ignored.
     */
    lowerBarColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    pointPadding?: number;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotApoAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotApoDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotApoDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotApoDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotApoDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Absolute Price Oscillator. This series requires the `linkedTo`
 * option to be set and should be loaded after the
 * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `apo` series are defined in plotOptions.apo.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotApoOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotApoAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotApoDataLabelsOptions|Array<PlotApoDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotApoDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of Absolute Price Oscillator
     * series points.
     */
    params?: PlotApoParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of Absolute Price Oscillator series
 * points.
 */
export interface PlotApoParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     *
     * By default index value used to be set to 0. Since Highstock 7 by default
     * index is set to 3 which means that the ema indicator will be calculated
     * using Close values.
     */
    index?: number;
    /**
     * (Highstock) Periods for Absolute Price Oscillator calculations.
     */
    periods?: Array<number>;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAreaAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAreaDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotAreaDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotAreaDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAreaDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotAreaDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The area series type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `area` series are defined in plotOptions.area.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAreaOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAreaAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highstock) Set the point threshold for when a series should
     * enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotAreaDataLabelsOptions|Array<PlotAreaDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAreaDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Fill color or gradient for the area. When `null`,
     * the series' `color` is used with the series' `fillOpacity`.
     *
     * In styled mode, the fill color can be set with the `.highcharts-area`
     * class name.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Fill opacity for the area. When you set an
     * explicit `fillColor`, the `fillOpacity` is not applied. Instead, you
     * should define the opacity in the `fillColor` with an rgba color
     * definition. The `fillOpacity` setting, also the default setting,
     * overrides the alpha component of the `color` setting.
     *
     * In styled mode, the fill opacity can be set with the `.highcharts-area`
     * class name.
     */
    fillOpacity?: number;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) A separate color for the graph line. By default
     * the line takes the `color` of the series, but the lineColor setting
     * allows setting a separate color for the line without altering the
     * `fillColor`.
     *
     * In styled mode, the line stroke can be set with the `.highcharts-graph`
     * class name.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A separate color for the negative part of the area.
     *
     * In styled mode, a negative color is set with the `.highcharts-negative`
     * class name.
     */
    negativeFillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The Y axis value to serve as the base for the
     * area, for distinguishing between values above and below a threshold. The
     * area between the graph and the threshold is filled.
     *
     * * If a number is given, the Y axis will scale to the threshold.
     *
     * * If `null`, the scaling behaves like a line series with fill between the
     * graph and the Y axis minimum.
     *
     * * If `Infinity` or `-Infinity`, the area between the graph and the
     * corresponding Y axis extreme is filled (since v6.1.0).
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock) Whether the whole area or just the line should
     * respond to mouseover tooltips and other mouse or touch events.
     */
    trackByArea?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotArearangeAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotArearangeDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotArearangeDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotArearangeDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The area range series is a carteseian series with
 * higher and lower values for each point along an X axis, where the area
 * between the values is shaded.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `arearange` series are defined in plotOptions.arearange.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotArearangeOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotArearangeAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highstock) Set the point threshold for when a series should
     * enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock) Extended data labels for range series types.
     * Range series data labels use no `x` and `y` options. Instead, they have
     * `xLow`, `xHigh`, `yLow` and `yHigh` options to allow the higher and lower
     * data label sets individually.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotArearangeDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Fill color or gradient for the area. When `null`,
     * the series' `color` is used with the series' `fillOpacity`.
     *
     * In styled mode, the fill color can be set with the `.highcharts-area`
     * class name.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Fill opacity for the area. When you set an
     * explicit `fillColor`, the `fillOpacity` is not applied. Instead, you
     * should define the opacity in the `fillColor` with an rgba color
     * definition. The `fillOpacity` setting, also the default setting,
     * overrides the alpha component of the `color` setting.
     *
     * In styled mode, the fill opacity can be set with the `.highcharts-area`
     * class name.
     */
    fillOpacity?: number;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) A separate color for the graph line. By default
     * the line takes the `color` of the series, but the lineColor setting
     * allows setting a separate color for the line without altering the
     * `fillColor`.
     *
     * In styled mode, the line stroke can be set with the `.highcharts-graph`
     * class name.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Pixel width of the arearange graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A separate color for the negative part of the area.
     *
     * In styled mode, a negative color is set with the `.highcharts-negative`
     * class name.
     */
    negativeFillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The Y axis value to serve as the base for the
     * area, for distinguishing between values above and below a threshold. The
     * area between the graph and the threshold is filled.
     *
     * * If a number is given, the Y axis will scale to the threshold.
     *
     * * If `null`, the scaling behaves like a line series with fill between the
     * graph and the Y axis minimum.
     *
     * * If `Infinity` or `-Infinity`, the area between the graph and the
     * corresponding Y axis extreme is filled (since v6.1.0).
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock) Whether the whole area or just the line should
     * respond to mouseover tooltips and other mouse or touch events.
     */
    trackByArea?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAreasplineAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAreasplineDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotAreasplineDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotAreasplineDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAreasplineDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotAreasplineDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The area spline series is an area series where the
 * graph between the points is smoothed into a spline.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `areaspline` series are defined in plotOptions.areaspline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAreasplineOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAreasplineAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotAreasplineDataLabelsOptions|Array<PlotAreasplineDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAreasplineDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Fill color or gradient for the area. When `null`,
     * the series' `color` is used with the series' `fillOpacity`.
     *
     * In styled mode, the fill color can be set with the `.highcharts-area`
     * class name.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Fill opacity for the area. When you set an
     * explicit `fillColor`, the `fillOpacity` is not applied. Instead, you
     * should define the opacity in the `fillColor` with an rgba color
     * definition. The `fillOpacity` setting, also the default setting,
     * overrides the alpha component of the `color` setting.
     *
     * In styled mode, the fill opacity can be set with the `.highcharts-area`
     * class name.
     */
    fillOpacity?: number;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) A separate color for the graph line. By default
     * the line takes the `color` of the series, but the lineColor setting
     * allows setting a separate color for the line without altering the
     * `fillColor`.
     *
     * In styled mode, the line stroke can be set with the `.highcharts-graph`
     * class name.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A separate color for the negative part of the area.
     *
     * In styled mode, a negative color is set with the `.highcharts-negative`
     * class name.
     */
    negativeFillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The Y axis value to serve as the base for the
     * area, for distinguishing between values above and below a threshold. The
     * area between the graph and the threshold is filled.
     *
     * * If a number is given, the Y axis will scale to the threshold.
     *
     * * If `null`, the scaling behaves like a line series with fill between the
     * graph and the Y axis minimum.
     *
     * * If `Infinity` or `-Infinity`, the area between the graph and the
     * corresponding Y axis extreme is filled (since v6.1.0).
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock) Whether the whole area or just the line should
     * respond to mouseover tooltips and other mouse or touch events.
     */
    trackByArea?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAreasplinerangeAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAreasplinerangeDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAreasplinerangeDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotAreasplinerangeDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The area spline range is a cartesian series type with
 * higher and lower Y values along an X axis. The area inside the range is
 * colored, and the graph outlining the area is a smoothed spline.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `areasplinerange` series are defined in
 * plotOptions.areasplinerange.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAreasplinerangeOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAreasplinerangeAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock) Extended data labels for range series types.
     * Range series data labels use no `x` and `y` options. Instead, they have
     * `xLow`, `xHigh`, `yLow` and `yHigh` options to allow the higher and lower
     * data label sets individually.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAreasplinerangeDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Fill color or gradient for the area. When `null`,
     * the series' `color` is used with the series' `fillOpacity`.
     *
     * In styled mode, the fill color can be set with the `.highcharts-area`
     * class name.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Fill opacity for the area. When you set an
     * explicit `fillColor`, the `fillOpacity` is not applied. Instead, you
     * should define the opacity in the `fillColor` with an rgba color
     * definition. The `fillOpacity` setting, also the default setting,
     * overrides the alpha component of the `color` setting.
     *
     * In styled mode, the fill opacity can be set with the `.highcharts-area`
     * class name.
     */
    fillOpacity?: number;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) A separate color for the graph line. By default
     * the line takes the `color` of the series, but the lineColor setting
     * allows setting a separate color for the line without altering the
     * `fillColor`.
     *
     * In styled mode, the line stroke can be set with the `.highcharts-graph`
     * class name.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Pixel width of the arearange graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A separate color for the negative part of the area.
     *
     * In styled mode, a negative color is set with the `.highcharts-negative`
     * class name.
     */
    negativeFillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The Y axis value to serve as the base for the
     * area, for distinguishing between values above and below a threshold. The
     * area between the graph and the threshold is filled.
     *
     * * If a number is given, the Y axis will scale to the threshold.
     *
     * * If `null`, the scaling behaves like a line series with fill between the
     * graph and the Y axis minimum.
     *
     * * If `Infinity` or `-Infinity`, the area between the graph and the
     * corresponding Y axis extreme is filled (since v6.1.0).
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock) Whether the whole area or just the line should
     * respond to mouseover tooltips and other mouse or touch events.
     */
    trackByArea?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAroonAnimationOptions {
    defer?: number;
}
/**
 * (Highstock) aroonDown line options.
 */
export interface PlotAroonAroonDownOptions {
    /**
     * (Highstock) Styles for an aroonDown line.
     */
    styles?: PlotAroonAroonDownStylesOptions;
}
/**
 * (Highstock) Styles for an aroonDown line.
 */
export interface PlotAroonAroonDownStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * plotOptions.aroon.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAroonDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotAroonDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotAroonDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAroonDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Aroon. This series requires the `linkedTo` option to be set and
 * should be loaded after the `stock/indicators/indicators.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `aroon` series are defined in plotOptions.aroon.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAroonOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAroonAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) aroonDown line options.
     */
    aroonDown?: PlotAroonAroonDownOptions;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotAroonDataLabelsOptions|Array<PlotAroonDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAroonDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of aroon series points.
     */
    params?: PlotAroonParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAroonoscillatorAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAroonoscillatorDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotAroonoscillatorDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotAroonoscillatorDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAroonoscillatorDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Aroon Oscillator. This series requires the `linkedTo` option to
 * be set and should be loaded after the `stock/indicators/indicators.js` and
 * `stock/indicators/aroon.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `aroonoscillator` series are defined in
 * plotOptions.aroonoscillator.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAroonoscillatorOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAroonoscillatorAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotAroonoscillatorDataLabelsOptions|Array<PlotAroonoscillatorDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAroonoscillatorDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of aroon oscillator series
     * points.
     */
    params?: PlotAroonoscillatorParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of aroon oscillator series points.
 */
export interface PlotAroonoscillatorParamsOptions {
    /**
     * (Highstock) Period for Aroon Oscillator
     */
    period?: number;
}
/**
 * (Highstock) Paramters used in calculation of aroon series points.
 */
export interface PlotAroonParamsOptions {
    /**
     * (Highstock) Period for Aroon indicator
     */
    period?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotAtrAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotAtrDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotAtrDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotAtrDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotAtrDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Average true range indicator (ATR). This series requires
 * `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `atr` series are defined in plotOptions.atr.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotAtrOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotAtrAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotAtrDataLabelsOptions|Array<PlotAtrDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotAtrDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotAtrParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotAtrParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotBarAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotBarDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotBarDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotBarDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotBarDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotBarDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A bar series is a special type of column series where the
 * columns are horizontal.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bar` series are defined in plotOptions.bar.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotBarOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotBarAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotBarDataLabelsOptions|Array<PlotBarDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotBarDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotBbAnimationOptions {
    defer?: number;
}
/**
 * (Highstock) Bottom line options.
 */
export interface PlotBbBottomLineOptions {
    /**
     * (Highstock) Styles for a bottom line.
     */
    styles?: PlotBbBottomLineStylesOptions;
}
/**
 * (Highstock) Styles for a bottom line.
 */
export interface PlotBbBottomLineStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * plotOptions.bb.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotBbDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotBbDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotBbDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotBbDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Bollinger bands (BB). This series requires the `linkedTo` option
 * to be set and should be loaded after the `stock/indicators/indicators.js`
 * file.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bb` series are defined in plotOptions.bb.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotBbOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotBbAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) Bottom line options.
     */
    bottomLine?: PlotBbBottomLineOptions;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotBbDataLabelsOptions|Array<PlotBbDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotBbDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotBbParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) Top line options.
     */
    topLine?: PlotBbTopLineOptions;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotBbParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) Standard deviation for top and bottom bands.
     */
    standardDeviation?: number;
}
/**
 * (Highstock) Top line options.
 */
export interface PlotBbTopLineOptions {
    /**
     * (Highstock) Styles for a bottom line.
     */
    styles?: PlotBbTopLineStylesOptions;
}
/**
 * (Highstock) Styles for a bottom line.
 */
export interface PlotBbTopLineStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * plotOptions.bb.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotBellcurveAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotBellcurveDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotBellcurveDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotBellcurveDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotBellcurveDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts) A bell curve is an areaspline series which represents the
 * probability density function of the normal distribution. It calculates mean
 * and standard deviation of the base series data and plots the curve according
 * to the calculated parameters.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bellcurve` series are defined in plotOptions.bellcurve.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotBellcurveOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotBellcurveAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotBellcurveDataLabelsOptions|Array<PlotBellcurveDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotBellcurveDataSortingOptions);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Fill color or gradient for the area. When `null`,
     * the series' `color` is used with the series' `fillOpacity`.
     *
     * In styled mode, the fill color can be set with the `.highcharts-area`
     * class name.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Fill opacity for the area. When you set an
     * explicit `fillColor`, the `fillOpacity` is not applied. Instead, you
     * should define the opacity in the `fillColor` with an rgba color
     * definition. The `fillOpacity` setting, also the default setting,
     * overrides the alpha component of the `color` setting.
     *
     * In styled mode, the fill opacity can be set with the `.highcharts-area`
     * class name.
     */
    fillOpacity?: number;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts) This option allows to define the length of the bell curve. A
     * unit of the length of the bell curve is standard deviation.
     */
    intervals?: number;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) A separate color for the graph line. By default
     * the line takes the `color` of the series, but the lineColor setting
     * allows setting a separate color for the line without altering the
     * `fillColor`.
     *
     * In styled mode, the line stroke can be set with the `.highcharts-graph`
     * class name.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A separate color for the negative part of the area.
     *
     * In styled mode, a negative color is set with the `.highcharts-negative`
     * class name.
     */
    negativeFillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) Defines how many points should be plotted within 1 interval.
     * See `plotOptions.bellcurve.intervals`.
     */
    pointsInInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The Y axis value to serve as the base for the
     * area, for distinguishing between values above and below a threshold. The
     * area between the graph and the threshold is filled.
     *
     * * If a number is given, the Y axis will scale to the threshold.
     *
     * * If `null`, the scaling behaves like a line series with fill between the
     * graph and the Y axis minimum.
     *
     * * If `Infinity` or `-Infinity`, the area between the graph and the
     * corresponding Y axis extreme is filled (since v6.1.0).
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock) Whether the whole area or just the line should
     * respond to mouseover tooltips and other mouse or touch events.
     */
    trackByArea?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotBoxplotAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotBoxplotDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotBoxplotDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotBoxplotDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotBoxplotDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotBoxplotDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A box plot is a convenient way of depicting groups of data
 * through their five-number summaries: the smallest observation (sample
 * minimum), lower quartile (Q1), median (Q2), upper quartile (Q3), and largest
 * observation (sample maximum).
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `boxplot` series are defined in plotOptions.boxplot.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotBoxplotOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotBoxplotAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts) The dash style of the box.
     */
    boxDashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotBoxplotDataLabelsOptions|Array<PlotBoxplotDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotBoxplotDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) The fill color of the box.
     *
     * In styled mode, the fill color can be set with the
     * `.highcharts-boxplot-box` class.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) The width of the line surrounding the box. If any of
     * stemWidth, medianWidth or whiskerWidth are `null`, the lineWidth also
     * applies to these lines.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts) The color of the median line. If `undefined`, the general
     * series color applies.
     *
     * In styled mode, the median stroke width can be set with the
     * `.highcharts-boxplot-median` class.
     */
    medianColor?: (ColorString|GradientColorObject);
    /**
     * (Highcharts) The dash style of the median.
     */
    medianDashStyle?: DashStyleValue;
    /**
     * (Highcharts) The pixel width of the median line. If `null`, the lineWidth
     * is used.
     *
     * In styled mode, the median stroke width can be set with the
     * `.highcharts-boxplot-median` class.
     */
    medianWidth?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    /**
     * (Highcharts) The dash style of the stem, the vertical line extending from
     * the box to the whiskers.
     */
    stemDashStyle?: DashStyleValue;
    /**
     * (Highcharts) The width of the stem, the vertical line extending from the
     * box to the whiskers. If `undefined`, the width is inherited from the
     * lineWidth option.
     *
     * In styled mode, the stem stroke width can be set with the
     * `.highcharts-boxplot-stem` class.
     */
    stemWidth?: number;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highcharts) The color of the whiskers, the horizontal lines marking low
     * and high values. When `undefined`, the general series color is used.
     *
     * In styled mode, the whisker stroke can be set with the
     * `.highcharts-boxplot-whisker` class .
     */
    whiskerColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The dash style of the whiskers.
     */
    whiskerDashStyle?: DashStyleValue;
    /**
     * (Highcharts) The length of the whiskers, the horizontal lines marking low
     * and high values. It can be a numerical pixel value, or a percentage value
     * of the box width. Set `0` to disable whiskers.
     */
    whiskerLength?: (number|string);
    /**
     * (Highcharts) The line width of the whiskers, the horizontal lines marking
     * low and high values. When `undefined`, the general lineWidth applies.
     *
     * In styled mode, the whisker stroke width can be set with the
     * `.highcharts-boxplot-whisker` class.
     */
    whiskerWidth?: number;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotBubbleAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotBubbleDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotBubbleDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotBubbleDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotBubbleDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotBubbleDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Apply a jitter effect for the rendered markers. When
 * plotting discrete values, a little random noise may help telling the points
 * apart. The jitter setting applies a random displacement of up to `n` axis
 * units in either direction. So for example on a horizontal X axis, setting the
 * `jitter.x` to 0.24 will render the point in a random position between 0.24
 * units to the left and 0.24 units to the right of the true axis position. On a
 * category axis, setting it to 0.5 will fill up the bin and make the data
 * appear continuous.
 *
 * When rendered on top of a box plot or a column series, a jitter value of 0.24
 * will correspond to the underlying series' default groupPadding and
 * pointPadding settings.
 */
export interface PlotBubbleJitterOptions {
    /**
     * (Highcharts, Highstock) The maximal X offset for the random jitter
     * effect.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) The maximal Y offset for the random jitter
     * effect.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock) A bubble series is a three dimensional series type
 * where each point renders an X, Y and Z value. Each points is drawn as a
 * bubble where the position along the X and Y axes mark the X and Y values, and
 * the size of the bubble relates to the Z value.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bubble` series are defined in plotOptions.bubble.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotBubbleOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotBubbleAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) If there are more points in the series than the
     * `animationLimit`, the animation won't run. Animation affects overall
     * performance and doesn't work well with heavy data series.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highstock) Set the point threshold for when a series should
     * enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotBubbleDataLabelsOptions|Array<PlotBubbleDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotBubbleDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Whether to display negative sized bubbles. The
     * threshold is given by the zThreshold option, and negative bubbles can be
     * visualized by setting negativeColor.
     */
    displayNegative?: boolean;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock) Apply a jitter effect for the rendered markers.
     * When plotting discrete values, a little random noise may help telling the
     * points apart. The jitter setting applies a random displacement of up to
     * `n` axis units in either direction. So for example on a horizontal X
     * axis, setting the `jitter.x` to 0.24 will render the point in a random
     * position between 0.24 units to the left and 0.24 units to the right of
     * the true axis position. On a category axis, setting it to 0.5 will fill
     * up the bin and make the data appear continuous.
     *
     * When rendered on top of a box plot or a column series, a jitter value of
     * 0.24 will correspond to the underlying series' default groupPadding and
     * pointPadding settings.
     */
    jitter?: PlotBubbleJitterOptions;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highstock) Maximum bubble size. Bubbles will automatically
     * size between the `minSize` and `maxSize` to reflect the `z` value of each
     * bubble. Can be either pixels (when no unit is given), or a percentage of
     * the smallest one of the plot width and height.
     */
    maxSize?: (number|string);
    /**
     * (Highcharts, Highstock) Minimum bubble size. Bubbles will automatically
     * size between the `minSize` and `maxSize` to reflect the `z` value of each
     * bubble. Can be either pixels (when no unit is given), or a percentage of
     * the smallest one of the plot width and height.
     */
    minSize?: (number|string);
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) When a point's Z value is below the zThreshold setting, this
     * color is used.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) Whether the bubble's value should be represented
     * by the area or the width of the bubble. The default, `area`, corresponds
     * best to the human perception of the size of each bubble.
     */
    sizeBy?: BubbleSizeByValue;
    /**
     * (Highcharts) When this is true, the absolute value of z determines the
     * size of the bubble. This means that with the default `zThreshold` of 0, a
     * bubble of value -1 will have the same size as a bubble of value 1, while
     * a bubble of value 0 will have a smaller size according to `minSize`.
     */
    sizeByAbsoluteValue?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) When this is true, the series will not cause the Y axis to
     * cross the zero plane (or threshold option) unless the data actually
     * crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts) The minimum for the Z value range. Defaults to the highest Z
     * value in the data.
     */
    zMax?: number;
    /**
     * (Highcharts) The minimum for the Z value range. Defaults to the lowest Z
     * value in the data.
     */
    zMin?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
    /**
     * (Highcharts) When displayNegative is `false`, bubbles with lower Z values
     * are skipped. When `displayNegative` is `true` and a negativeColor is
     * given, points with lower Z is colored.
     */
    zThreshold?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotBulletAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotBulletDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotBulletDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotBulletDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotBulletDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A bullet graph is a variation of a bar graph. The bullet graph
 * features a single measure, compares it to a target, and displays it in the
 * context of qualitative ranges of performance that could be set using
 * plotBands on yAxis.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bullet` series are defined in plotOptions.bullet.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotBulletOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotBulletAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotBulletDataLabelsOptions|Array<PlotBulletDataLabelsOptions>);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) All options related with look and positiong of targets.
     */
    targetOptions?: PlotBulletTargetOptions;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) All options related with look and positiong of targets.
 */
export interface PlotBulletTargetOptions {
    /**
     * (Highcharts) The border color of the rectangle representing the target.
     * When not set, the point's border color is used.
     *
     * In styled mode, use class `highcharts-bullet-target` instead.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts) The border width of the rectangle representing the target.
     *
     * In styled mode, use class `highcharts-bullet-target` instead.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The color of the rectangle representing the target. When not
     * set, point's color (if set in point's options - `color`) or zone of the
     * target value (if `zones` or `negativeColor` are set) or the same color as
     * the point has is used.
     *
     * In styled mode, use class `highcharts-bullet-target` instead.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The height of the rectangle representing the target.
     */
    height?: number;
    /**
     * (Highcharts) The width of the rectangle representing the target. Could be
     * set as a pixel value or as a percentage of a column width.
     */
    width?: (number|string);
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotCandlestickAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotCandlestickDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotCandlestickDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotCandlestickDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotCandlestickDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotCandlestickDragDropGuideBoxOptions {
    /**
     * (Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highstock) A candlestick chart is a style of financial chart used to
 * describe price movements over time.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `candlestick` series are defined in
 * plotOptions.candlestick.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotCandlestickOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotCandlestickAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotCandlestickDataLabelsOptions|Array<PlotCandlestickDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotCandlestickDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highstock) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highstock) The color of the line/border of the candlestick.
     *
     * In styled mode, the line stroke can be set with the
     * `.highcharts-candlestick-series .highcahrts-point` rule.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The pixel width of the candlestick line/border. Defaults to
     * `1`.
     *
     * In styled mode, the line stroke width can be set with the
     * `.highcharts-candlestick-series .highcahrts-point` rule.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highstock) Determines which one of `open`, `high`, `low`, `close` values
     * should be represented as `point.y`, which is later used to set dataLabel
     * position and compare.
     */
    pointValKey?: OptionsPointValKeyValue;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highstock) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) The fill color of the candlestick when values are rising.
     *
     * In styled mode, the up color can be set with the
     * `.highcharts-candlestick-series .highcharts-point-up` rule.
     */
    upColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The specific line color for up candle sticks. The default is
     * to inherit the general `lineColor` setting.
     */
    upLineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotCciAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotCciDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotCciDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotCciDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotCciDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Commodity Channel Index (CCI). This series requires `linkedTo`
 * option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `cci` series are defined in plotOptions.cci.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotCciOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotCciAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotCciDataLabelsOptions|Array<PlotCciDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotCciDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotCciParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotCciParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotChaikinAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotChaikinDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotChaikinDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotChaikinDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotChaikinDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Chaikin Oscillator. This series requires the `linkedTo` option to
 * be set and should be loaded after the `stock/indicators/indicators.js` and
 * `stock/indicators/ema.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `chaikin` series are defined in plotOptions.chaikin.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotChaikinOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotChaikinAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotChaikinDataLabelsOptions|Array<PlotChaikinDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotChaikinDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of Chaikin Oscillator series
     * points.
     */
    params?: PlotChaikinParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of Chaikin Oscillator series
 * points.
 */
export interface PlotChaikinParamsOptions {
    /**
     * (Highstock) Periods for Chaikin Oscillator calculations.
     */
    periods?: Array<number>;
    /**
     * (Highstock) The id of volume series which is mandatory. For example using
     * OHLC data, volumeSeriesID='volume' means the indicator will be calculated
     * using OHLC and volume values.
     */
    volumeSeriesID?: string;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotCmfAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotCmfDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotCmfDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotCmfDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotCmfDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Chaikin Money Flow indicator (cmf).
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `cmf` series are defined in plotOptions.cmf.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotCmfOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotCmfAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotCmfDataLabelsOptions|Array<PlotCmfDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotCmfDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotCmfParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotCmfParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) The id of another series to use its data as volume data for
     * the indiator calculation.
     */
    volumeSeriesID?: string;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotColumnAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotColumnDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotColumnDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotColumnDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotColumnDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotColumnDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Column series display one column per value along an X
 * axis.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `column` series are defined in plotOptions.column.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotColumnOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotColumnAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highstock) Set the point threshold for when a series should
     * enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotColumnDataLabelsOptions|Array<PlotColumnDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotColumnDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotColumnpyramidAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotColumnpyramidDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotColumnpyramidDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotColumnpyramidDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotColumnpyramidDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotColumnpyramidDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Column pyramid series display one pyramid per value
 * along an X axis. To display horizontal pyramids, set chart.inverted to
 * `true`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `columnpyramid` series are defined in
 * plotOptions.columnpyramid.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotColumnpyramidOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotColumnpyramidAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotColumnpyramidDataLabelsOptions|Array<PlotColumnpyramidDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotColumnpyramidDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotColumnrangeAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotColumnrangeDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotColumnrangeDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotColumnrangeDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The column range is a cartesian series type with
 * higher and lower Y values along an X axis. To display horizontal bars, set
 * chart.inverted to `true`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `columnrange` series are defined in
 * plotOptions.columnrange.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotColumnrangeOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotColumnrangeAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highstock) Set the point threshold for when a series should
     * enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock) Extended data labels for range series types.
     * Range series data labels have no `x` and `y` options. Instead, they have
     * `xLow`, `xHigh`, `yLow` and `yHigh` options to allow the higher and lower
     * data label sets individually.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotColumnrangeDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotCylinderAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotCylinderDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotCylinderDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotCylinderDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotCylinderDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts) A cylinder graph is a variation of a 3d column graph. The
 * cylinder graph features cylindrical points.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `cylinder` series are defined in plotOptions.cylinder.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotCylinderOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotCylinderAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotCylinderDataLabelsOptions|Array<PlotCylinderDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotCylinderDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotDemaAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotDemaDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotDemaDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotDemaDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotDemaDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Double exponential moving average (DEMA) indicator. This series
 * requires `linkedTo` option to be set and should be loaded after the
 * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `dema` series are defined in plotOptions.dema.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotDemaOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotDemaAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotDemaDataLabelsOptions|Array<PlotDemaDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotDemaDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotDemaParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotDemaParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     *
     * By default index value used to be set to 0. Since Highstock 7 by default
     * index is set to 3 which means that the ema indicator will be calculated
     * using Close values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotDependencywheelAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotDependencywheelDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotDependencywheelLevelsDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Set options on specific levels. Takes precedence over series
 * options, but not node and link options.
 */
export interface PlotDependencywheelLevelsOptions {
    /**
     * (Highcharts) Can set `borderColor` on all nodes which lay on the same
     * level.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts) Can set `borderWidth` on all nodes which lay on the same
     * level.
     */
    borderWidth?: number;
    /**
     * (Highcharts) Can set `color` on all nodes which lay on the same level.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Can set `colorByPoint` on all nodes which lay on the same
     * level.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Can set `dataLabels` on all
     * points which lay on the same level.
     */
    dataLabels?: (SeriesSankeyDataLabelsOptionsObject|Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) Decides which level takes effect from the options set in the
     * levels object.
     */
    level?: number;
    /**
     * (Highcharts) Can set `linkOpacity` on all points which lay on the same
     * level.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) Can set `states` on all nodes and points which lay on the
     * same level.
     */
    states?: SeriesStatesOptionsObject;
}
/**
 * (Highcharts) A dependency wheel chart is a type of flow diagram, where all
 * nodes are laid out in a circle, and the flow between the are drawn as link
 * bands.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `dependencywheel` series are defined in
 * plotOptions.dependencywheel.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotDependencywheelOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotDependencywheelAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The center of the wheel relative to the plot area. Can be
     * percentages or pixel values. The default behaviour is to center the wheel
     * inside the plot area.
     */
    center?: Array<(number|string|null)>;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) Higher numbers makes the links in a sankey diagram or
     * dependency wheelrender more curved. A `curveFactor` of 0 makes the lines
     * straight.
     */
    curveFactor?: number;
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the data labels
     * appearing on top of the nodes and links. For sankey charts, data labels
     * are visible for the nodes by default, but hidden for links. This is
     * controlled by modifying the `nodeFormat`, and the `format` that applies
     * to links and is an empty string by default.
     */
    dataLabels?: (SeriesSankeyDataLabelsOptionsObject|Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) Set options on specific levels. Takes precedence over series
     * options, but not node and link options.
     */
    levels?: Array<PlotDependencywheelLevelsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Opacity for the links between nodes in the sankey diagram.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) The minimal width for a line of a sankey. By default, 0
     * values are not shown.
     */
    minLinkWidth?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The padding between nodes in a sankey diagram or dependency
     * wheel, in pixels.
     *
     * If the number of nodes is so great that it is possible to lay them out
     * within the plot area with the given `nodePadding`, they will be rendered
     * with a smaller padding as a strategy to avoid overflow.
     */
    nodePadding?: number;
    /**
     * (Highcharts) The pixel width of each node in a sankey diagram or
     * dependency wheel, or the height in case the chart is inverted.
     */
    nodeWidth?: number;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) The start angle of the dependency wheel, in degrees where 0
     * is up.
     */
    startAngle?: number;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotDpoAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotDpoDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotDpoDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotDpoDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotDpoDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Detrended Price Oscillator. This series requires the `linkedTo`
 * option to be set and should be loaded after the
 * `stock/indicators/indicators.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `dpo` series are defined in plotOptions.dpo.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotDpoOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotDpoAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotDpoDataLabelsOptions|Array<PlotDpoDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotDpoDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Parameters used in calculation of Detrended Price Oscillator
     * series points.
     */
    params?: PlotDpoParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Parameters used in calculation of Detrended Price Oscillator
 * series points.
 */
export interface PlotDpoParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) Period for Detrended Price Oscillator
     */
    period?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotDumbbellAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotDumbbellDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotDumbbellDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotDumbbellDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The dumbbell series is a cartesian series with higher
 * and lower values for each point along an X axis, connected with a line
 * between the values. Requires `highcharts-more.js` and `modules/dumbbell.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `dumbbell` series are defined in plotOptions.dumbbell.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotDumbbellOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotDumbbellAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Highcharts, Highstock) Color of the line that connects the dumbbell
     * point's values. By default it is the series' color.
     */
    connectorColor?: string;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock) Pixel width of the line that connects the
     * dumbbell point's values.
     */
    connectorWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock) Extended data labels for range series types.
     * Range series data labels use no `x` and `y` options. Instead, they have
     * `xLow`, `xHigh`, `yLow` and `yHigh` options to allow the higher and lower
     * data label sets individually.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotDumbbellDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    groupPadding?: number;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) A separate color for the graph line. By default
     * the line takes the `color` of the series, but the lineColor setting
     * allows setting a separate color for the line without altering the
     * `fillColor`.
     *
     * In styled mode, the line stroke can be set with the `.highcharts-graph`
     * class name.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Color of the start markers in a dumbbell graph.
     */
    lowColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A separate color for the negative part of the area.
     *
     * In styled mode, a negative color is set with the `.highcharts-negative`
     * class name.
     */
    negativeFillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) The Y axis value to serve as the base for the
     * area, for distinguishing between values above and below a threshold. The
     * area between the graph and the threshold is filled.
     *
     * * If a number is given, the Y axis will scale to the threshold.
     *
     * * If `null`, the scaling behaves like a line series with fill between the
     * graph and the Y axis minimum.
     *
     * * If `Infinity` or `-Infinity`, the area between the graph and the
     * corresponding Y axis extreme is filled (since v6.1.0).
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotEmaAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotEmaDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotEmaDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotEmaDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotEmaDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Exponential moving average indicator (EMA). This series requires
 * the `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ema` series are defined in plotOptions.ema.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotEmaOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotEmaAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotEmaDataLabelsOptions|Array<PlotEmaDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotEmaDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotEmaParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotEmaParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     *
     * By default index value used to be set to 0. Since Highstock 7 by default
     * index is set to 3 which means that the ema indicator will be calculated
     * using Close values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotErrorbarAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotErrorbarDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotErrorbarDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotErrorbarDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotErrorbarDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotErrorbarDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Error bars are a graphical representation of the
 * variability of data and are used on graphs to indicate the error, or
 * uncertainty in a reported measurement.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `errorbar` series are defined in plotOptions.errorbar.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotErrorbarOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotErrorbarAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts) The dash style of the box.
     */
    boxDashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the bars. This can be overridden by
     * stemColor and whiskerColor individually.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotErrorbarDataLabelsOptions|Array<PlotErrorbarDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotErrorbarDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) The fill color of the box.
     *
     * In styled mode, the fill color can be set with the
     * `.highcharts-boxplot-box` class.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) The width of the line surrounding the box. If any of
     * stemWidth, medianWidth or whiskerWidth are `null`, the lineWidth also
     * applies to these lines.
     */
    lineWidth?: number;
    /**
     * (Highcharts) The parent series of the error bar. The default value links
     * it to the previous series. Otherwise, use the id of the parent series.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts) The color of the median line. If `undefined`, the general
     * series color applies.
     *
     * In styled mode, the median stroke width can be set with the
     * `.highcharts-boxplot-median` class.
     */
    medianColor?: (ColorString|GradientColorObject);
    /**
     * (Highcharts) The dash style of the median.
     */
    medianDashStyle?: DashStyleValue;
    /**
     * (Highcharts) The pixel width of the median line. If `null`, the lineWidth
     * is used.
     *
     * In styled mode, the median stroke width can be set with the
     * `.highcharts-boxplot-median` class.
     */
    medianWidth?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    /**
     * (Highcharts) The dash style of the stem, the vertical line extending from
     * the box to the whiskers.
     */
    stemDashStyle?: DashStyleValue;
    /**
     * (Highcharts) The width of the stem, the vertical line extending from the
     * box to the whiskers. If `undefined`, the width is inherited from the
     * lineWidth option.
     *
     * In styled mode, the stem stroke width can be set with the
     * `.highcharts-boxplot-stem` class.
     */
    stemWidth?: number;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highcharts) The color of the whiskers, the horizontal lines marking low
     * and high values. When `undefined`, the general series color is used.
     *
     * In styled mode, the whisker stroke can be set with the
     * `.highcharts-boxplot-whisker` class .
     */
    whiskerColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The dash style of the whiskers.
     */
    whiskerDashStyle?: DashStyleValue;
    /**
     * (Highcharts) The length of the whiskers, the horizontal lines marking low
     * and high values. It can be a numerical pixel value, or a percentage value
     * of the box width. Set `0` to disable whiskers.
     */
    whiskerLength?: (number|string);
    /**
     * (Highcharts) The line width of the whiskers, the horizontal lines marking
     * low and high values. When `null`, the general lineWidth applies.
     */
    whiskerWidth?: number;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotFlagsDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotFlagsDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotFlagsDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotFlagsDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotFlagsDragDropGuideBoxOptions {
    /**
     * (Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highstock) Flags are used to mark events in stock charts. They can be added
 * on the timeline, or attached to a specific series.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `flags` series are defined in plotOptions.flags.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotFlagsOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highstock) Whether the flags are allowed to overlap sideways. If
     * `false`, the flags are moved sideways using an algorithm that seeks to
     * place every flag as close as possible to its original position.
     */
    allowOverlapX?: boolean;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotFlagsDataLabelsOptions|Array<PlotFlagsDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotFlagsDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) The fill color for the flags.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highstock) Fixed height of the flag's shape. By default, height is
     * autocalculated according to the flag's title.
     */
    height?: number;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highstock) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highstock) The color of the line/border of the flag.
     *
     * In styled mode, the stroke is set in the
     * `.highcharts-flag-series.highcharts-point` rule.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The pixel width of the flag's line/border.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) In case the flag is placed on a series, on what point key to
     * place it. Line and columns have one key, `y`. In range or OHLC-type
     * series, however, the flag can optionally be placed on the `open`, `high`,
     * `low` or `close` key.
     */
    onKey?: OptionsOnKeyValue;
    /**
     * (Highstock) The id of the series that the flags should be drawn on. If no
     * id is given, the flags are drawn on the x axis.
     */
    onSeries?: string;
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) The shape of the marker. Can be one of "flag", "circlepin",
     * "squarepin", or an image of the format `url(/path-to-image.jpg)`.
     * Individual shapes can also be set for each point.
     */
    shape?: FlagsShapeValue;
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highstock) When multiple flags in the same series fall on the same
     * value, this number determines the vertical offset between them.
     */
    stackDistance?: number;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highstock) The text styles of the flag.
     *
     * In styled mode, the styles are set in the `.highcharts-flag-series
     * .highcharts-point` rule.
     */
    style?: CSSObject;
    /**
     * (Highstock) Text alignment for the text inside the flag.
     */
    textAlign?: OptionsTextAlignValue;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highstock) The text to display on each flag. This can be defined on
     * series level, or individually for each point. Defaults to `"A"`.
     */
    title?: string;
    /**
     * (Highstock) Specific tooltip options for flag series. Flag series
     * tooltips are different from most other types in that a flag doesn't have
     * a data value, so the tooltip rather displays the `text` option for each
     * point.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) Whether to use HTML to render the flag texts. Using HTML
     * allows for advanced formatting, images and reliable bi-directional text
     * rendering. Note that exported images won't respect the HTML, and that
     * HTML won't respect Z-index settings.
     */
    useHTML?: boolean;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highstock) Fixed width of the flag's shape. By default, width is
     * autocalculated according to the flag's title.
     */
    width?: number;
    /**
     * (Highstock) The y position of the top left corner of the flag relative to
     * either the series (if onSeries is defined), or the x axis. Defaults to
     * `-30`.
     */
    y?: number;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotFunnel3dAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotFunnel3dDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotFunnel3dDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotFunnel3dDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotFunnel3dDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A funnel3d is a 3d version of funnel series type. Funnel charts
 * are a type of chart often used to visualize stages in a sales project, where
 * the top are the initial stages with the most clients.
 *
 * It requires that the `highcharts-3d.js`, `cylinder.js` and `funnel3d.js`
 * module are loaded.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `funnel3d` series are defined in plotOptions.funnel3d.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotFunnel3dOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotFunnel3dAnimationOptions);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotFunnel3dDataLabelsOptions|Array<PlotFunnel3dDataLabelsOptions>);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) By deafult sides fill is set to a gradient through this
     * option being set to `true`. Set to `false` to get solid color for the
     * sides.
     */
    gradientForSides?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) The height of the series. If it is a number it defines the
     * pixel height, if it is a percentage string it is the percentage of the
     * plot area height.
     */
    height?: (number|string);
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The height of the neck, the lower part of the funnel. A
     * number defines pixel width, a percentage string defines a percentage of
     * the plot area height.
     */
    neckHeight?: (number|string);
    /**
     * (Highcharts) The width of the neck, the lower part of the funnel. A
     * number defines pixel width, a percentage string defines a percentage of
     * the plot area width.
     */
    neckWidth?: (number|string);
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) A reversed funnel has the widest area down. A reversed
     * funnel with no neck width and neck height is a pyramid.
     */
    reversed?: boolean;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highcharts) The max width of the series compared to the width of the
     * plot area, or the pixel width if it is a number.
     */
    width?: (number|string);
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Initial animation is by default disabled for the funnel chart.
 */
export interface PlotFunnelAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotFunnelDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Funnel charts are a type of chart often used to visualize stages
 * in a sales project, where the top are the initial stages with the most
 * clients. It requires that the modules/funnel.js file is loaded.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `funnel` series are defined in plotOptions.funnel.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotFunnelOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Initial animation is by default disabled for the funnel
     * chart.
     */
    animation?: (boolean|PlotFunnelAnimationOptions);
    /**
     * (Highcharts) The color of the border surrounding each slice. When `null`,
     * the border takes the same color as the slice fill. This can be used
     * together with a `borderWidth` to fill drawing gaps created by
     * antialiazing artefacts in borderless pies.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the border surrounding each slice.
     *
     * When setting the border width to 0, there may be small gaps between the
     * slices due to SVG antialiasing artefacts. To work around this, keep the
     * border width at 0.5 or 1, but set the `borderColor` to `null` instead.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The center of the series. By default, it is centered in the
     * middle of the plot area, so it fills the plot area height.
     */
    center?: Array<(number|string)>;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The color of the pie series. A pie series is represented as
     * an empty circle if the total sum of its values is 0. Use this property to
     * define the color of its border.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts) A series specific or series type specific color set to use
     * instead of the global colors.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (SeriesPieDataLabelsOptionsObject|Array<SeriesPieDataLabelsOptionsObject>);
    /**
     * (Highcharts) The thickness of a 3D pie.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) The end angle of the pie in degrees where 0 is top and 90 is
     * right. Defaults to `startAngle` plus 360.
     */
    endAngle?: number;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) If the total sum of the pie's values is 0, the series is
     * represented as an empty circle . The `fillColor` option defines the color
     * of that circle. Use pie.borderWidth to set the border thickness.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) The height of the funnel or pyramid. If it is a number it
     * defines the pixel height, if it is a percentage string it is the
     * percentage of the plot area height.
     */
    height?: (number|string);
    /**
     * (Highcharts) Equivalent to chart.ignoreHiddenSeries, this option tells
     * whether the series shall be redrawn as if the hidden point were `null`.
     *
     * The default value changed from `false` to `true` with Highcharts 3.0.
     */
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) The minimum size for a pie in response to auto margins. The
     * pie will try to shrink to make room for data labels in side the plot
     * area, but only to this size.
     */
    minSize?: (number|string);
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The height of the neck, the lower part of the funnel. A
     * number defines pixel width, a percentage string defines a percentage of
     * the plot area height.
     */
    neckHeight?: (number|string);
    /**
     * (Highcharts) The width of the neck, the lower part of the funnel. A
     * number defines pixel width, a percentage string defines a percentage of
     * the plot area width.
     */
    neckWidth?: (number|string);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) A reversed funnel has the widest area down. A reversed
     * funnel with no neck width and neck height is a pyramid.
     */
    reversed?: boolean;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Since 2.1, pies are not shown in the legend by default.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) If a point is sliced, moved out from the center, how many
     * pixels should it be moved?.
     */
    slicedOffset?: number;
    /**
     * (Highcharts) The start angle of the pie slices in degrees where 0 is top
     * and 90 right.
     */
    startAngle?: number;
    /**
     * (Highcharts) Options for the series states.
     */
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip. When `stickyTracking` is
     * false and `tooltip.shared` is false, the tooltip will be hidden when
     * moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highcharts) The width of the funnel compared to the width of the plot
     * area, or the pixel width if it is a number.
     */
    width?: (number|string);
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Gantt) Enable or disable the initial animation when a series is displayed.
 * The animation can also be set as a configuration object. Please note that
 * this option only applies to the initial animation of the series itself. For
 * other animations, see chart.animation and the animation parameter under the
 * API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotGanttAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotGanttDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotGanttDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotGanttDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Gantt) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotGanttDragDropGuideBoxOptions {
    /**
     * (Gantt) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Gantt) A `gantt` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `gantt` series are defined in plotOptions.gantt.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotGanttOptions {
    /**
     * (Gantt) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Gantt) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Gantt) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotGanttAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Gantt) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Gantt) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Gantt) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Gantt) The main color of the series. In line type series it applies to
     * the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) In an X-range series, this option makes
     * all points of the same Y-axis category the same color.
     */
    colorByPoint?: boolean;
    /**
     * (Gantt) Styled mode only. A specific color index to use for the series,
     * so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Gantt) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Gantt) A reserved subspace to store options and values for customized
     * functionality. Here you can add additional data for your own event
     * callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Gantt) Name of the dash style to use for the graph, or for some series
     * types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotGanttDataLabelsOptions|Array<PlotGanttDataLabelsOptions>);
    /**
     * (Gantt) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Gantt) The draggable-points module allows points to be moved around or
     * modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Gantt) Enable or disable the mouse tracking for a specific series. This
     * includes point tooltips and click events on graphs and points. For large
     * datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Gantt) General event handlers for the series items. These event hooks
     * can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Gantt) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Gantt) An array specifying which option maps to which key in the data
     * point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Gantt) Opacity of a series parts: line, fill (e.g. area) and dataLabels.
     */
    opacity?: number;
    /**
     * (Gantt) A partial fill for each point, typically used to visualize how
     * much of a task is performed. See completed.
     */
    partialFill?: PlotGanttPartialFillOptions;
    /**
     * (Gantt) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Gantt) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Gantt) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Gantt) Whether to apply a drop shadow to the graph line. Since 2.3 the
     * shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Gantt) If true, a checkbox is displayed next to the legend item to allow
     * selecting the series. The state of the checkbox is determined by the
     * `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Gantt) Whether to display this particular series or series type in the
     * legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Gantt) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Gantt) Sticky tracking of mouse events. When true, the `mouseOut` event
     * on a series isn't triggered until the mouse moves over another series, or
     * out of the plot area. When false, the `mouseOut` event on a series is
     * triggered when the mouse leaves the area around the series' graph or
     * markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Gantt) A configuration object for the tooltip rendering of each single
     * series. Properties are inherited from tooltip, but only the following
     * properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Gantt) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Gantt) A partial fill for each point, typically used to visualize how much
 * of a task is performed. See completed.
 */
export interface PlotGanttPartialFillOptions {
    /**
     * (Highcharts, Highstock, Gantt) The fill color to be used for partial
     * fills. Defaults to a darker shade of the point color.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotGaugeAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotGaugeDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Data labels for the gauge. For gauges, the data labels are
 * enabled by default and shown in a bordered box below the point.
 */
export interface PlotGaugeDataLabelsOptions {
    /**
     * (Highcharts) The alignment of the data label compared to the point. If
     * `right`, the right side of the label should be touching the point. For
     * points with an extent, like columns, the alignments also dictates how to
     * align it inside the box, as given with the inside option. Can be one of
     * `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts) Whether to allow data labels to overlap. To make the labels
     * less sensitive for overlapping, the dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed for the `dataLabels`. The animation can also be set as a
     * configuration object. Please note that this option only applies to the
     * initial animation. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotGaugeDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The background color or gradient for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The border color for the data label. Defaults to
     * `undefined`.
     */
    borderColor?: string;
    /**
     * (Highcharts) The border radius in pixels for the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts) The border width in pixels for the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts) A class name for the data label. Particularly in styled
     * mode, this can be used to give each series' or point's data label unique
     * styling. In addition to this option, a default color class name is added
     * so that we can give the labels a contrast text shadow.
     */
    className?: string;
    /**
     * (Highcharts) The text color for the data labels. Defaults to `undefined`.
     * For certain series types, like column or map, the data labels can be
     * drawn inside the points. In this case the data label will be drawn with
     * maximum contrast by default. Additionally, it will be given a
     * `text-outline` style with the opposite color, to further increase the
     * contrast. This can be overridden by setting the `text-outline` style to
     * `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Whether to hide data labels that are outside the plot area.
     * By default, the data label is moved inside the plot area according to the
     * overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts) Enable or disable the data labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts) A declarative filter to control of which data labels to
     * display. The declarative filter is designed for use when callback
     * functions are not available, like when the chart options require a pure
     * JSON structure or for use with graphical editors. For programmatic
     * control, use the `formatter` instead, and return `undefined` to disable a
     * single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts) A format string for the data label. Available variables are
     * the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts) Callback JavaScript function to format the data label. Note
     * that if a `format` is defined, the format takes precedence and the
     * formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts) For points with an extent, like columns or map areas,
     * whether to align the data label inside the box or to the actual value
     * point. Defaults to `false` in most cases, `true` in stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts) Format for points with the value of null. Works analogously
     * to format. `nullFormat` can be applied only to series which support
     * displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts) Callback JavaScript function that defines formatting for
     * points with the value of null. Works analogously to formatter.
     * `nullPointFormatter` can be applied only to series which support
     * displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts) How to handle data labels that flow outside the plot area.
     * The default is `"justify"`, which aligns them inside the plot area. For
     * columns and bars, this means it will be moved inside the bar. To display
     * data labels outside the plot area, set `crop` to `false` and `overflow`
     * to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts) When either the `borderWidth` or the `backgroundColor` is
     * set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts) Aligns data labels relative to points. If `center` alignment
     * is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts) Text rotation in degrees. Note that due to a more complex
     * structure, backgrounds, borders and padding will be lost on a rotated
     * data label.
     */
    rotation?: number;
    /**
     * (Highcharts) The shadow of the box. Works best with `borderWidth` or
     * `backgroundColor`. Since 2.3 the shadow can be an object configuration
     * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts) Styles for the label. The default `color` setting is
     * `"contrast"`, which is a pseudo color that Highcharts picks up and
     * applies the maximum contrast to the underlying point item, for example
     * the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts) Options for a label text which should follow marker's shape.
     * Border and background are disabled for a label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts) The vertical alignment of a data label. Can be one of `top`,
     * `middle` or `bottom`. The default value depends on the data, for instance
     * in a column chart, the label is above positive values and below negative
     * values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts) The x position offset of the label relative to the point in
     * pixels.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of the label relative to the point in
     * pixels.
     */
    y?: number;
    /**
     * (Highcharts) The Z index of the data labels. The default Z index puts it
     * above the series. Use a Z index of 2 to display it behind the series.
     */
    z?: number;
    zIndex?: number;
}
/**
 * (Highcharts) Options for the dial or arrow pointer of the gauge.
 *
 * In styled mode, the dial is styled with the `.highcharts-gauge-series
 * .highcharts-dial` rule.
 */
export interface PlotGaugeDialOptions {
    /**
     * (Highcharts) The background or fill color of the gauge's dial.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The length of the dial's base part, relative to the total
     * radius or length of the dial.
     */
    baseLength?: string;
    /**
     * (Highcharts) The pixel width of the base of the gauge dial. The base is
     * the part closest to the pivot, defined by baseLength.
     */
    baseWidth?: number;
    /**
     * (Highcharts) The border color or stroke of the gauge's dial. By default,
     * the borderWidth is 0, so this must be set in addition to a custom border
     * color.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the gauge dial border in pixels.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The radius or length of the dial, in percentages relative to
     * the radius of the gauge itself.
     */
    radius?: string;
    /**
     * (Highcharts) The length of the dial's rear end, the part that extends out
     * on the other side of the pivot. Relative to the dial's length.
     */
    rearLength?: string;
    /**
     * (Highcharts) The width of the top of the dial, closest to the perimeter.
     * The pivot narrows in from the base to the top.
     */
    topWidth?: number;
}
/**
 * (Highcharts) Gauges are circular plots displaying one or more values with a
 * dial pointing to values along the perimeter.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `gauge` series are defined in plotOptions.gauge.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotGaugeOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotGaugeAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts) Data labels for the gauge. For gauges, the data labels are
     * enabled by default and shown in a bordered box below the point.
     */
    dataLabels?: (PlotGaugeDataLabelsOptions|Array<PlotGaugeDataLabelsOptions>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Options for the dial or arrow pointer of the gauge.
     *
     * In styled mode, the dial is styled with the `.highcharts-gauge-series
     * .highcharts-dial` rule.
     */
    dial?: PlotGaugeDialOptions;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Allow the dial to overshoot the end of the perimeter axis by
     * this many degrees. Say if the gauge axis goes from 0 to 60, a value of
     * 100, or 1000, will show 5 degrees beyond the end of the axis when this
     * option is set to 5.
     */
    overshoot?: number;
    /**
     * (Highcharts) Options for the pivot or the center point of the gauge.
     *
     * In styled mode, the pivot is styled with the `.highcharts-gauge-series
     * .highcharts-pivot` rule.
     */
    pivot?: PlotGaugePivotOptions;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Defaults to false for gauge series.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highcharts) When this option is `true`, the dial will wrap around the
     * axes. For instance, in a full-range gauge going from 0 to 360, a value of
     * 400 will point to 40\. When `wrap` is `false`, the dial stops at 360.
     */
    wrap?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Options for the pivot or the center point of the gauge.
 *
 * In styled mode, the pivot is styled with the `.highcharts-gauge-series
 * .highcharts-pivot` rule.
 */
export interface PlotGaugePivotOptions {
    /**
     * (Highcharts) The background color or fill of the pivot.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The border or stroke color of the pivot. In able to change
     * this, the borderWidth must also be set to something other than the
     * default 0.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The border or stroke width of the pivot.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The pixel radius of the pivot.
     */
    radius?: number;
}
/**
 * (Highcharts, Highmaps) Animation is disabled by default on the heatmap
 * series.
 */
export interface PlotHeatmapAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotHeatmapDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotHeatmapDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotHeatmapDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotHeatmapDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highmaps) Style options for the guide box. The guide box has one
 * state by default, the `default` state.
 */
export interface PlotHeatmapDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highmaps) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highmaps) A heatmap is a graphical representation of data where
 * the individual values contained in a matrix are represented as colors.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `heatmap` series are defined in plotOptions.heatmap.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotHeatmapOptions {
    /**
     * (Highcharts, Highmaps) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highmaps) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highmaps) Animation is disabled by default on the heatmap
     * series.
     */
    animation?: (boolean|PlotHeatmapAnimationOptions);
    /**
     * (Highcharts, Highmaps) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highmaps) Set the point threshold for when a series should
     * enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width for each heat map item.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highmaps) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In heat maps this color is
     * rarely used, as we mostly use the color to denote the value of each
     * point. Unless options are set in the colorAxis, the default value is
     * pulled from the options.colors array.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highmaps) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highmaps) The column size - how many X axis units each
     * column in the heatmap should span.
     */
    colsize?: number;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highmaps) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highmaps) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotHeatmapDataLabelsOptions|Array<PlotHeatmapDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotHeatmapDataSortingOptions);
    /**
     * (Highcharts, Highmaps) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highmaps) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highmaps) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highmaps) General event handlers for the series items. These
     * event hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highmaps) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highmaps) An array specifying which option maps to which key
     * in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highmaps) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highmaps) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) The color applied to null points. In styled mode,
     * a general CSS class is applied instead.
     */
    nullColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highmaps) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highmaps) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highmaps) Padding between the points in the heatmap.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highmaps) The row size - how many Y axis units each heatmap
     * row should span.
     */
    rowsize?: number;
    /**
     * (Highcharts, Highmaps) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highmaps) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highmaps) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highmaps) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highmaps) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotHistogramAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotHistogramDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotHistogramDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotHistogramDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotHistogramDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts) A histogram is a column series which represents the distribution
 * of the data set in the base series. Histogram splits data into bins and shows
 * their frequencies.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `histogram` series are defined in plotOptions.histogram.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotHistogramOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotHistogramAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts) A preferable number of bins. It is a suggestion, so a
     * histogram may have a different number of bins. By default it is set to
     * the square root of the base series' data length. Available options are:
     * `square-root`, `sturges`, `rice`. You can also define a function which
     * takes a `baseSeries` as a parameter and should return a positive integer.
     */
    binsNumber?: ("rice"|"square-root"|"sturges"|number|Function);
    /**
     * (Highcharts) Width of each bin. By default the bin's width is calculated
     * as `(max - min) / number of bins`. This option takes precedence over
     * binsNumber.
     */
    binWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotHistogramDataLabelsOptions|Array<PlotHistogramDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotHistogramDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: string;
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotIkhAnimationOptions {
    defer?: number;
}
/**
 * (Highstock) The styles for Chikou line
 */
export interface PlotIkhChikouLineOptions {
    styles?: PlotIkhChikouLineStylesOptions;
}
export interface PlotIkhChikouLineStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotIkhDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotIkhDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotIkhDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotIkhDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) The styles for Kijun line
 */
export interface PlotIkhKijunLineOptions {
    styles?: PlotIkhKijunLineStylesOptions;
}
export interface PlotIkhKijunLineStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highstock) Ichimoku Kinko Hyo (IKH). This series requires `linkedTo` option
 * to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ikh` series are defined in plotOptions.ikh.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotIkhOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotIkhAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) The styles for Chikou line
     */
    chikouLine?: PlotIkhChikouLineOptions;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotIkhDataLabelsOptions|Array<PlotIkhDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotIkhDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highstock) The styles for Kijun line
     */
    kijunLine?: PlotIkhKijunLineOptions;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotIkhParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) The styles for area between Senkou Span A and B.
     */
    senkouSpan?: PlotIkhSenkouSpanOptions;
    /**
     * (Highstock) The styles for Senkou Span A line
     */
    senkouSpanA?: PlotIkhSenkouSpanAOptions;
    /**
     * (Highstock) The styles for Senkou Span B line
     */
    senkouSpanB?: PlotIkhSenkouSpanBOptions;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highstock) The styles for Tenkan line
     */
    tenkanLine?: PlotIkhTenkanLineOptions;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotIkhParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) The base period for Senkou Span B calculations
     */
    periodSenkouSpanB?: number;
    /**
     * (Highstock) The base period for Tenkan calculations.
     */
    periodTenkan?: number;
}
/**
 * (Highstock) The styles for Senkou Span A line
 */
export interface PlotIkhSenkouSpanAOptions {
    styles?: PlotIkhSenkouSpanAStylesOptions;
}
export interface PlotIkhSenkouSpanAStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highstock) The styles for Senkou Span B line
 */
export interface PlotIkhSenkouSpanBOptions {
    styles?: PlotIkhSenkouSpanBStylesOptions;
}
export interface PlotIkhSenkouSpanBStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highstock) The styles for area between Senkou Span A and B.
 */
export interface PlotIkhSenkouSpanOptions {
    /**
     * (Highstock) Color of the area between Senkou Span A and B, when Senkou
     * Span A is above Senkou Span B. Note that if a `style.fill` is defined,
     * the `color` takes precedence and the `style.fill` is ignored.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Color of the area between Senkou Span A and B, when Senkou
     * Span A is under Senkou Span B.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
}
/**
 * (Highstock) The styles for Tenkan line
 */
export interface PlotIkhTenkanLineOptions {
    styles?: PlotIkhTenkanLineStylesOptions;
}
export interface PlotIkhTenkanLineStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotItemAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotItemDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) An item chart is an infographic chart where a number of items
 * are laid out in either a rectangular or circular pattern. It can be used to
 * visualize counts within a group, or for the circular pattern, typically a
 * parliament.
 *
 * The circular layout has much in common with a pie chart. Many of the item
 * series options, like `center`, `size` and data label positioning, are
 * inherited from the pie series and don't apply for rectangular layouts.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `item` series are defined in plotOptions.item.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotItemOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotItemAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The center of the pie chart relative to the plot area. Can
     * be percentages or pixel values. The default behaviour (as of 3.0) is to
     * center the pie so that all slices and data labels are within the plot
     * area. As a consequence, the pie may actually jump around in a chart with
     * dynamic values, as the data labels move. In that case, the center should
     * be explicitly set, for example to `["50%", "50%"]`.
     */
    center?: [(number|string|null), (number|string|null)];
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The color of the pie series. A pie series is represented as
     * an empty circle if the total sum of its values is 0. Use this property to
     * define the color of its border.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts) A series specific or series type specific color set to use
     * instead of the global colors.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (SeriesPieDataLabelsOptionsObject|Array<SeriesPieDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) In circular view, the end angle of the item layout, in
     * degrees where 0 is up.
     */
    endAngle?: (number|undefined);
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) If the total sum of the pie's values is 0, the series is
     * represented as an empty circle . The `fillColor` option defines the color
     * of that circle. Use pie.borderWidth to set the border thickness.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) Equivalent to chart.ignoreHiddenSeries, this option tells
     * whether the series shall be redrawn as if the hidden point were `null`.
     *
     * The default value changed from `false` to `true` with Highcharts 3.0.
     */
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts) In circular view, the size of the inner diameter of the
     * circle. Can be a percentage or pixel value. Percentages are relative to
     * the outer perimeter. Pixel values are given as integers.
     *
     * If the `rows` option is set, it overrides the `innerSize` setting.
     */
    innerSize?: (number|string);
    /**
     * (Highcharts) The padding between the items, given in relative size where
     * the size of the item is 1.
     */
    itemPadding?: number;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) The layout of the items in rectangular view. Can be either
     * `horizontal` or `vertical`.
     */
    layout?: string;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts) The minimum size for a pie in response to auto margins. The
     * pie will try to shrink to make room for data labels in side the plot
     * area, but only to this size.
     */
    minSize?: (number|string);
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) The number of rows to display in the rectangular or circular
     * view. If the `innerSize` is set, it will be overridden by the `rows`
     * setting.
     */
    rows?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Since 2.1, pies are not shown in the legend by default.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) The diameter of the pie relative to the plot area. Can be a
     * percentage or pixel value. Pixel values are given as integers. The
     * default behaviour (as of 3.0) is to scale to the plot area and give room
     * for data labels within the plot area. slicedOffset is also included in
     * the default size calculation. As a consequence, the size of the pie may
     * vary when points are updated and data labels more around. In that case it
     * is best to set a fixed value, for example `"75%"`.
     */
    size?: (number|string|null);
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) In circular view, the start angle of the item layout, in
     * degrees where 0 is up.
     */
    startAngle?: (number|undefined);
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip. When `stickyTracking` is
     * false and `tooltip.shared` is false, the tooltip will be hidden when
     * moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotKeltnerchannelsAnimationOptions {
    defer?: number;
}
/**
 * (Highstock) Bottom line options.
 */
export interface PlotKeltnerchannelsBottomLineOptions {
    /**
     * (Highstock) Styles for a bottom line.
     */
    styles?: PlotKeltnerchannelsBottomLineStylesOptions;
}
/**
 * (Highstock) Styles for a bottom line.
 */
export interface PlotKeltnerchannelsBottomLineStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * `plotOptions.keltnerchannels.color`
     */
    lineColor?: string;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotKeltnerchannelsDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotKeltnerchannelsDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotKeltnerchannelsDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotKeltnerchannelsDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Keltner Channels. This series requires the `linkedTo` option to
 * be set and should be loaded after the `stock/indicators/indicators.js`,
 * `stock/indicators/atr.js`, and `stock/ema/.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `keltnerchannels` series are defined in
 * plotOptions.keltnerchannels.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotKeltnerchannelsOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotKeltnerchannelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) Bottom line options.
     */
    bottomLine?: PlotKeltnerchannelsBottomLineOptions;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotKeltnerchannelsDataLabelsOptions|Array<PlotKeltnerchannelsDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotKeltnerchannelsDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotKeltnerchannelsParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) Top line options.
     */
    topLine?: PlotKeltnerchannelsTopLineOptions;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotKeltnerchannelsParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The ATR multiplier.
     */
    multiplierATR?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) The ATR period.
     */
    periodATR?: number;
}
/**
 * (Highstock) Top line options.
 */
export interface PlotKeltnerchannelsTopLineOptions {
    /**
     * (Highstock) Styles for a bottom line.
     */
    styles?: PlotKeltnerchannelsTopLineStylesOptions;
}
/**
 * (Highstock) Styles for a bottom line.
 */
export interface PlotKeltnerchannelsTopLineStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * `plotOptions.keltnerchannels.color`
     */
    lineColor?: string;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotLineAnimationOptions {
    defer?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotLinearregressionangleAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotLinearregressionangleDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotLinearregressionangleDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotLinearregressionangleDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotLinearregressionangleDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Linear regression angle indicator. This series requires
 * `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `linearregressionangle` series are defined in
 * plotOptions.linearregressionangle.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotLinearregressionangleOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotLinearregressionangleAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotLinearregressionangleDataLabelsOptions|Array<PlotLinearregressionangleDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotLinearregressionangleDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotLinearregressionangleParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotLinearregressionangleParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) Unit (in milliseconds) for the x axis distances used to
     * compute the regression line paramters (slope & intercept) for every
     * range. In Highstock the x axis values are always represented in
     * milliseconds which may cause that distances between points are "big"
     * integer numbers.
     *
     * Highstock's linear regression algorithm (least squares method) will
     * utilize these "big" integers for finding the slope and the intercept of
     * the regression line for each period. In consequence, this value may be a
     * very "small" decimal number that's hard to interpret by a human.
     *
     * For instance: `xAxisUnit` equealed to `86400000` ms (1 day) forces the
     * algorithm to treat `86400000` as `1` while computing the slope and the
     * intercept. This may enchance the legiblitity of the indicator's values.
     *
     * Default value is the closest distance between two data points.
     */
    xAxisUnit?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotLinearregressionAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotLinearregressionDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotLinearregressionDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotLinearregressionDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotLinearregressionDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotLinearregressioninterceptAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotLinearregressioninterceptDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotLinearregressioninterceptDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotLinearregressioninterceptDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotLinearregressioninterceptDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Linear regression intercept indicator. This series requires
 * `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `linearregressionintercept` series are defined in
 * plotOptions.linearregressionintercept.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotLinearregressioninterceptOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotLinearregressioninterceptAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotLinearregressioninterceptDataLabelsOptions|Array<PlotLinearregressioninterceptDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotLinearregressioninterceptDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotLinearregressioninterceptParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotLinearregressioninterceptParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) Unit (in milliseconds) for the x axis distances used to
     * compute the regression line paramters (slope & intercept) for every
     * range. In Highstock the x axis values are always represented in
     * milliseconds which may cause that distances between points are "big"
     * integer numbers.
     *
     * Highstock's linear regression algorithm (least squares method) will
     * utilize these "big" integers for finding the slope and the intercept of
     * the regression line for each period. In consequence, this value may be a
     * very "small" decimal number that's hard to interpret by a human.
     *
     * For instance: `xAxisUnit` equealed to `86400000` ms (1 day) forces the
     * algorithm to treat `86400000` as `1` while computing the slope and the
     * intercept. This may enchance the legiblitity of the indicator's values.
     *
     * Default value is the closest distance between two data points.
     */
    xAxisUnit?: number;
}
/**
 * (Highstock) Linear regression indicator. This series requires `linkedTo`
 * option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `linearregression` series are defined in
 * plotOptions.linearregression.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotLinearregressionOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotLinearregressionAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotLinearregressionDataLabelsOptions|Array<PlotLinearregressionDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotLinearregressionDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotLinearregressionParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotLinearregressionParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) Unit (in milliseconds) for the x axis distances used to
     * compute the regression line paramters (slope & intercept) for every
     * range. In Highstock the x axis values are always represented in
     * milliseconds which may cause that distances between points are "big"
     * integer numbers.
     *
     * Highstock's linear regression algorithm (least squares method) will
     * utilize these "big" integers for finding the slope and the intercept of
     * the regression line for each period. In consequence, this value may be a
     * very "small" decimal number that's hard to interpret by a human.
     *
     * For instance: `xAxisUnit` equealed to `86400000` ms (1 day) forces the
     * algorithm to treat `86400000` as `1` while computing the slope and the
     * intercept. This may enchance the legiblitity of the indicator's values.
     *
     * Default value is the closest distance between two data points.
     */
    xAxisUnit?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotLinearregressionslopeAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotLinearregressionslopeDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotLinearregressionslopeDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotLinearregressionslopeDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotLinearregressionslopeDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Linear regression slope indicator. This series requires
 * `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `linearregressionslope` series are defined in
 * plotOptions.linearregressionslope.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotLinearregressionslopeOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotLinearregressionslopeAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotLinearregressionslopeDataLabelsOptions|Array<PlotLinearregressionslopeDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotLinearregressionslopeDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotLinearregressionslopeParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotLinearregressionslopeParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) Unit (in milliseconds) for the x axis distances used to
     * compute the regression line paramters (slope & intercept) for every
     * range. In Highstock the x axis values are always represented in
     * milliseconds which may cause that distances between points are "big"
     * integer numbers.
     *
     * Highstock's linear regression algorithm (least squares method) will
     * utilize these "big" integers for finding the slope and the intercept of
     * the regression line for each period. In consequence, this value may be a
     * very "small" decimal number that's hard to interpret by a human.
     *
     * For instance: `xAxisUnit` equealed to `86400000` ms (1 day) forces the
     * algorithm to treat `86400000` as `1` while computing the slope and the
     * intercept. This may enchance the legiblitity of the indicator's values.
     *
     * Default value is the closest distance between two data points.
     */
    xAxisUnit?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotLineDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotLineDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotLineDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotLineDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotLineDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A line series displays information as a series of
 * data points connected by straight line segments.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `line` series are defined in plotOptions.line.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotLineOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotLineAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highstock) Set the point threshold for when a series should
     * enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotLineDataLabelsOptions|Array<PlotLineDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotLineDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotLollipopAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotLollipopDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotLollipopDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotLollipopDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The lollipop series is a carteseian series with a
 * line anchored from the x axis and a dot at the end to mark the value.
 * Requires `highcharts-more.js`, `modules/dumbbell.js` and
 * `modules/lollipop.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `lollipop` series are defined in plotOptions.lollipop.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotLollipopOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotLollipopAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Highcharts, Highstock) Color of the line that connects the dumbbell
     * point's values. By default it is the series' color.
     */
    connectorColor?: string;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock) Pixel width of the line that connects the
     * dumbbell point's values.
     */
    connectorWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock) Extended data labels for range series types.
     * Range series data labels use no `x` and `y` options. Instead, they have
     * `xLow`, `xHigh`, `yLow` and `yHigh` options to allow the higher and lower
     * data label sets individually.
     */
    dataLabels?: (SeriesAreaRangeDataLabelsOptionsObject|Array<SeriesAreaRangeDataLabelsOptionsObject>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotLollipopDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    groupPadding?: number;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) A separate color for the graph line. By default
     * the line takes the `color` of the series, but the lineColor setting
     * allows setting a separate color for the line without altering the
     * `fillColor`.
     *
     * In styled mode, the line stroke can be set with the `.highcharts-graph`
     * class name.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A separate color for the negative part of the area.
     *
     * In styled mode, a negative color is set with the `.highcharts-negative`
     * class name.
     */
    negativeFillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) The Y axis value to serve as the base for the
     * area, for distinguishing between values above and below a threshold. The
     * area between the graph and the threshold is filled.
     *
     * * If a number is given, the Y axis will scale to the threshold.
     *
     * * If `null`, the scaling behaves like a line series with fill between the
     * graph and the Y axis minimum.
     *
     * * If `Infinity` or `-Infinity`, the area between the graph and the
     * corresponding Y axis extreme is filled (since v6.1.0).
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotMacdAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotMacdDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotMacdDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotMacdDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotMacdDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) The styles for macd line
 */
export interface PlotMacdMacdLineOptions {
    styles?: PlotMacdMacdLineStylesOptions;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
export interface PlotMacdMacdLineStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highstock) Moving Average Convergence Divergence (MACD). This series
 * requires `linkedTo` option to be set and should be loaded after the
 * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `macd` series are defined in plotOptions.macd.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotMacdOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotMacdAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotMacdDataLabelsOptions|Array<PlotMacdDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotMacdDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    groupPadding?: number;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) The styles for macd line
     */
    macdLine?: PlotMacdMacdLineOptions;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    minPointLength?: number;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotMacdParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    pointPadding?: number;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) The styles for signal line
     */
    signalLine?: PlotMacdSignalLineOptions;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotMacdParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The long period for indicator calculations.
     */
    longPeriod?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) The short period for indicator calculations.
     */
    shortPeriod?: number;
    /**
     * (Highstock) The base period for signal calculations.
     */
    signalPeriod?: number;
}
/**
 * (Highstock) The styles for signal line
 */
export interface PlotMacdSignalLineOptions {
    styles?: PlotMacdSignalLineStylesOptions;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
export interface PlotMacdSignalLineStylesOptions {
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highmaps) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotMapAnimationOptions {
    defer?: number;
}
/**
 * (Highmaps) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotMapbubbleAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotMapbubbleDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotMapbubbleDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotMapbubbleDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotMapbubbleDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highmaps) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotMapbubbleDragDropGuideBoxOptions {
    /**
     * (Highmaps) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Apply a jitter effect for the rendered markers. When
 * plotting discrete values, a little random noise may help telling the points
 * apart. The jitter setting applies a random displacement of up to `n` axis
 * units in either direction. So for example on a horizontal X axis, setting the
 * `jitter.x` to 0.24 will render the point in a random position between 0.24
 * units to the left and 0.24 units to the right of the true axis position. On a
 * category axis, setting it to 0.5 will fill up the bin and make the data
 * appear continuous.
 *
 * When rendered on top of a box plot or a column series, a jitter value of 0.24
 * will correspond to the underlying series' default groupPadding and
 * pointPadding settings.
 */
export interface PlotMapbubbleJitterOptions {
    /**
     * (Highcharts, Highstock) The maximal X offset for the random jitter
     * effect.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) The maximal Y offset for the random jitter
     * effect.
     */
    y?: number;
}
/**
 * (Highmaps) A map bubble series is a bubble series laid out on top of a map
 * series, where each bubble is tied to a specific map area.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `mapbubble` series are defined in plotOptions.mapbubble.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotMapbubbleOptions {
    /**
     * (Highmaps) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highmaps) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highmaps) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotMapbubbleAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highmaps) If there are more points in the series than the
     * `animationLimit`, the animation won't run. Animation affects overall
     * performance and doesn't work well with heavy data series.
     */
    animationLimit?: number;
    /**
     * (Highmaps) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highmaps) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highmaps) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highmaps) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highmaps) The main color of the series. This color affects both the fill
     * and the stroke of the bubble. For enhanced control, use `marker` options.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highmaps) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highmaps) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highmaps) A reserved subspace to store options and values for customized
     * functionality. Here you can add additional data for your own event
     * callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highmaps) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotMapbubbleDataLabelsOptions|Array<PlotMapbubbleDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotMapbubbleDataSortingOptions);
    /**
     * (Highmaps) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highmaps) Whether to display negative sized bubbles. The threshold is
     * given by the zThreshold option, and negative bubbles can be visualized by
     * setting negativeColor.
     */
    displayNegative?: boolean;
    /**
     * (Highmaps) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highmaps) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highmaps) General event handlers for the series items. These event hooks
     * can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highmaps) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highmaps) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock) Apply a jitter effect for the rendered markers.
     * When plotting discrete values, a little random noise may help telling the
     * points apart. The jitter setting applies a random displacement of up to
     * `n` axis units in either direction. So for example on a horizontal X
     * axis, setting the `jitter.x` to 0.24 will render the point in a random
     * position between 0.24 units to the left and 0.24 units to the right of
     * the true axis position. On a category axis, setting it to 0.5 will fill
     * up the bin and make the data appear continuous.
     *
     * When rendered on top of a box plot or a column series, a jitter value of
     * 0.24 will correspond to the underlying series' default groupPadding and
     * pointPadding settings.
     */
    jitter?: PlotMapbubbleJitterOptions;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highmaps) An array specifying which option maps to which key in the data
     * point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highmaps) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highstock) Maximum bubble size. Bubbles will automatically
     * size between the `minSize` and `maxSize` to reflect the `z` value of each
     * bubble. Can be either pixels (when no unit is given), or a percentage of
     * the smallest one of the plot width and height.
     */
    maxSize?: (number|string);
    /**
     * (Highcharts, Highstock) Minimum bubble size. Bubbles will automatically
     * size between the `minSize` and `maxSize` to reflect the `z` value of each
     * bubble. Can be either pixels (when no unit is given), or a percentage of
     * the smallest one of the plot width and height.
     */
    minSize?: (number|string);
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) When a point's Z value is below the zThreshold setting, this
     * color is used.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highmaps) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highmaps) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highmaps) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highmaps) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highmaps) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highmaps) Whether the bubble's value should be represented by the area
     * or the width of the bubble. The default, `area`, corresponds best to the
     * human perception of the size of each bubble.
     */
    sizeBy?: BubbleSizeByValue;
    /**
     * (Highcharts) When this is true, the absolute value of z determines the
     * size of the bubble. This means that with the default `zThreshold` of 0, a
     * bubble of value -1 will have the same size as a bubble of value 1, while
     * a bubble of value 0 will have a smaller size according to `minSize`.
     */
    sizeByAbsoluteValue?: boolean;
    /**
     * (Highmaps) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) When this is true, the series will not cause the Y axis to
     * cross the zero plane (or threshold option) unless the data actually
     * crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highmaps) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts) The minimum for the Z value range. Defaults to the highest Z
     * value in the data.
     */
    zMax?: number;
    /**
     * (Highcharts) The minimum for the Z value range. Defaults to the lowest Z
     * value in the data.
     */
    zMin?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
    /**
     * (Highcharts) When displayNegative is `false`, bubbles with lower Z values
     * are skipped. When `displayNegative` is `true` and a negativeColor is
     * given, points with lower Z is colored.
     */
    zThreshold?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotMapDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotMapDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotMapDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotMapDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highmaps) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotMapDragDropGuideBoxOptions {
    /**
     * (Highmaps) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Apply a jitter effect for the rendered markers. When
 * plotting discrete values, a little random noise may help telling the points
 * apart. The jitter setting applies a random displacement of up to `n` axis
 * units in either direction. So for example on a horizontal X axis, setting the
 * `jitter.x` to 0.24 will render the point in a random position between 0.24
 * units to the left and 0.24 units to the right of the true axis position. On a
 * category axis, setting it to 0.5 will fill up the bin and make the data
 * appear continuous.
 *
 * When rendered on top of a box plot or a column series, a jitter value of 0.24
 * will correspond to the underlying series' default groupPadding and
 * pointPadding settings.
 */
export interface PlotMapJitterOptions {
    /**
     * (Highcharts, Highstock) The maximal X offset for the random jitter
     * effect.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) The maximal Y offset for the random jitter
     * effect.
     */
    y?: number;
}
/**
 * (Highmaps) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotMaplineAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotMaplineDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotMaplineDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotMaplineDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotMaplineDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highmaps) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotMaplineDragDropGuideBoxOptions {
    /**
     * (Highmaps) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Apply a jitter effect for the rendered markers. When
 * plotting discrete values, a little random noise may help telling the points
 * apart. The jitter setting applies a random displacement of up to `n` axis
 * units in either direction. So for example on a horizontal X axis, setting the
 * `jitter.x` to 0.24 will render the point in a random position between 0.24
 * units to the left and 0.24 units to the right of the true axis position. On a
 * category axis, setting it to 0.5 will fill up the bin and make the data
 * appear continuous.
 *
 * When rendered on top of a box plot or a column series, a jitter value of 0.24
 * will correspond to the underlying series' default groupPadding and
 * pointPadding settings.
 */
export interface PlotMaplineJitterOptions {
    /**
     * (Highcharts, Highstock) The maximal X offset for the random jitter
     * effect.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) The maximal Y offset for the random jitter
     * effect.
     */
    y?: number;
}
/**
 * (Highmaps) A mapline series is a special case of the map series where the
 * value colors are applied to the strokes rather than the fills. It can also be
 * used for freeform drawing, like dividers, in the map.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `mapline` series are defined in plotOptions.mapline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotMaplineOptions {
    /**
     * (Highmaps) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highmaps) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highmaps) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotMaplineAnimationOptions);
    /**
     * (Highmaps) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highmaps) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highmaps) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highmaps) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highmaps) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highmaps) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highmaps) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highmaps) A reserved subspace to store options and values for customized
     * functionality. Here you can add additional data for your own event
     * callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highmaps) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotMaplineDataLabelsOptions|Array<PlotMaplineDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotMaplineDataSortingOptions);
    /**
     * (Highmaps) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highmaps) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highmaps) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highmaps) General event handlers for the series items. These event hooks
     * can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highmaps) Fill color for the map line shapes
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highmaps) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock) Apply a jitter effect for the rendered markers.
     * When plotting discrete values, a little random noise may help telling the
     * points apart. The jitter setting applies a random displacement of up to
     * `n` axis units in either direction. So for example on a horizontal X
     * axis, setting the `jitter.x` to 0.24 will render the point in a random
     * position between 0.24 units to the left and 0.24 units to the right of
     * the true axis position. On a category axis, setting it to 0.5 will fill
     * up the bin and make the data appear continuous.
     *
     * When rendered on top of a box plot or a column series, a jitter value of
     * 0.24 will correspond to the underlying series' default groupPadding and
     * pointPadding settings.
     */
    jitter?: PlotMaplineJitterOptions;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highmaps) An array specifying which option maps to which key in the data
     * point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the map line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highmaps) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The color to apply to null points.
     *
     * In styled mode, the null point fill is set in the
     * `.highcharts-null-point` class.
     */
    nullColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Whether to allow pointer interaction like tooltips and mouse
     * events on null points.
     */
    nullInteraction?: boolean;
    /**
     * (Highmaps) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highmaps) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highmaps) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highmaps) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highmaps) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highmaps) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highmaps) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highmaps) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highmaps) The map series is used for basic choropleth maps, where each map
 * area has a color based on its value.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `map` series are defined in plotOptions.map.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotMapOptions {
    /**
     * (Highmaps) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highmaps) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highmaps) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotMapAnimationOptions);
    /**
     * (Highmaps) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highmaps) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highmaps) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highmaps) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highmaps) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highmaps) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highmaps) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highmaps) A reserved subspace to store options and values for customized
     * functionality. Here you can add additional data for your own event
     * callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highmaps) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotMapDataLabelsOptions|Array<PlotMapDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotMapDataSortingOptions);
    /**
     * (Highmaps) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highmaps) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highmaps) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highmaps) General event handlers for the series items. These event hooks
     * can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highmaps) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highmaps) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock) Apply a jitter effect for the rendered markers.
     * When plotting discrete values, a little random noise may help telling the
     * points apart. The jitter setting applies a random displacement of up to
     * `n` axis units in either direction. So for example on a horizontal X
     * axis, setting the `jitter.x` to 0.24 will render the point in a random
     * position between 0.24 units to the left and 0.24 units to the right of
     * the true axis position. On a category axis, setting it to 0.5 will fill
     * up the bin and make the data appear continuous.
     *
     * When rendered on top of a box plot or a column series, a jitter value of
     * 0.24 will correspond to the underlying series' default groupPadding and
     * pointPadding settings.
     */
    jitter?: PlotMapJitterOptions;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highmaps) An array specifying which option maps to which key in the data
     * point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highmaps) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The color to apply to null points.
     *
     * In styled mode, the null point fill is set in the
     * `.highcharts-null-point` class.
     */
    nullColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Whether to allow pointer interaction like tooltips and mouse
     * events on null points.
     */
    nullInteraction?: boolean;
    /**
     * (Highmaps) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highmaps) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highmaps) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highmaps) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highmaps) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highmaps) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highmaps) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highmaps) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highmaps) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotMappointAnimationOptions {
    defer?: number;
}
export interface PlotMappointClusterEventsOptions {
    /**
     * (Highcharts, Highmaps) Fires when the cluster point is clicked and
     * `drillToCluster` is enabled. One parameter, `event`, is passed to the
     * function. The default action is to zoom to the cluster points range. This
     * can be prevented by calling `event.preventDefault()`.
     */
    drillToCluster?: MarkerClusterDrillCallbackFunction;
}
/**
 * (Highcharts, Highmaps) Options for layout algorithm. Inside there are options
 * to change the type of the algorithm, gridSize, distance or iterations.
 */
export interface PlotMappointClusterLayoutAlgorithmOptions {
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `distance` is a
     * maximum distance between point and cluster center so that this point will
     * be inside the cluster. The distance is either a number defining pixels or
     * a percentage defining a percentage of the plot area width.
     */
    distance?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to the `grid`, `gridSize` is a
     * size of a grid square element either as a number defining pixels, or a
     * percentage defining a percentage of the plot area width.
     */
    gridSize?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `iterations` are
     * the number of iterations that this algorithm will be repeated to find
     * clusters positions.
     */
    iterations?: number;
    /**
     * (Highcharts, Highmaps) When `type` is set to `undefined` and there are
     * more visible points than the kmeansThreshold the `grid` algorithm is used
     * to find clusters, otherwise `kmeans`. It ensures good performance on
     * large datasets and better clusters arrangement after the zoom.
     */
    kmeansThreshold?: number;
    /**
     * (Highcharts, Highmaps) Type of the algorithm used to combine points into
     * a cluster. There are three available algorithms:
     *
     * 1) `grid` - grid-based clustering technique. Points are assigned to
     * squares of set size depending on their position on the plot area. Points
     * inside the grid square are combined into a cluster. The grid size can be
     * controlled by `gridSize` property (grid size changes at certain zoom
     * levels).
     *
     * 2) `kmeans` - based on K-Means clustering technique. In the first step,
     * points are divided using the grid method (distance property is a grid
     * size) to find the initial amount of clusters. Next, each point is
     * classified by computing the distance between each cluster center and that
     * point. When the closest cluster distance is lower than distance property
     * set by a user the point is added to this cluster otherwise is classified
     * as `noise`. The algorithm is repeated until each cluster center not
     * change its previous position more than one pixel. This technique is more
     * accurate but also more time consuming than the `grid` algorithm,
     * especially for big datasets.
     *
     * 3) `optimizedKmeans` - based on K-Means clustering technique. This
     * algorithm uses k-means algorithm only on the chart initialization or when
     * chart extremes have greater range than on initialization. When a chart is
     * redrawn the algorithm checks only clustered points distance from the
     * cluster center and rebuild it when the point is spaced enough to be
     * outside the cluster. It provides performance improvement and more stable
     * clusters position yet can be used rather on small and sparse datasets.
     *
     * By default, the algorithm depends on visible quantity of points and
     * `kmeansThreshold`. When there are more visible points than the
     * `kmeansThreshold` the `grid` algorithm is used, otherwise `kmeans`.
     *
     * The custom clustering algorithm can be added by assigning a callback
     * function as the type property. This function takes an array of
     * `processedXData`, `processedYData`, `processedXData` indexes and
     * `layoutAlgorithm` options as arguments and should return an object with
     * grouped data.
     *
     * The algorithm should return an object like that: (see online
     * documentation for example)
     *
     * `clusterId` (example above - unique id of a cluster or noise) is an array
     * of points belonging to a cluster. If the array has only one point or
     * fewer points than set in `cluster.minimumClusterSize` it won't be
     * combined into a cluster.
     */
    type?: (string|Function);
}
/**
 * (Highcharts, Highmaps) Options for marker clusters, the concept of sampling
 * the data values into larger blocks in order to ease readability and increase
 * performance of the JavaScript charts.
 *
 * Note: marker clusters module is not working with `boost` and
 * `draggable-points` modules.
 *
 * The marker clusters feature requires the marker-clusters.js file to be
 * loaded, found in the modules directory of the download package, or online at
 * code.highcharts.com/modules/marker-clusters.js.
 */
export interface PlotMappointClusterOptions {
    /**
     * (Highcharts, Highmaps) When set to `false` prevent cluster overlapping -
     * this option works only when `layoutAlgorithm.type = "grid"`.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker animation.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highmaps) Options for the cluster data labels.
     */
    dataLabels?: DataLabelsOptions;
    /**
     * (Highcharts, Highmaps) Zoom the plot area to the cluster points range
     * when a cluster is clicked.
     */
    drillToCluster?: boolean;
    /**
     * (Highcharts, Highmaps) Whether to enable the marker-clusters module.
     */
    enabled?: boolean;
    events?: PlotMappointClusterEventsOptions;
    /**
     * (Highcharts, Highmaps) Options for layout algorithm. Inside there are
     * options to change the type of the algorithm, gridSize, distance or
     * iterations.
     */
    layoutAlgorithm?: PlotMappointClusterLayoutAlgorithmOptions;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The minimum amount of points to be combined into a
     * cluster. This value has to be greater or equal to 2.
     */
    minimumClusterSize?: number;
    states?: PlotMappointClusterStatesOptions;
    /**
     * (Highcharts, Highmaps) An array defining zones within marker clusters.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-cluster-zone-{n}` class, or custom classed from the
     * `className` option.
     */
    zones?: Array<PlotMappointClusterZonesOptions>;
}
export interface PlotMappointClusterStatesHoverOptions {
    /**
     * (Highcharts, Highmaps) The fill color of the cluster marker in hover
     * state. When `undefined`, the series' or point's fillColor for normal
     * state is used.
     */
    fillColor?: ColorType;
}
export interface PlotMappointClusterStatesOptions {
    hover?: PlotMappointClusterStatesHoverOptions;
}
/**
 * (Highcharts, Highmaps) An array defining zones within marker clusters.
 *
 * In styled mode, the color zones are styled with the
 * `.highcharts-cluster-zone-{n}` class, or custom classed from the `className`
 * option.
 */
export interface PlotMappointClusterZonesOptions {
    /**
     * (Highcharts, Highmaps) Styled mode only. A custom class name for the
     * zone.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The value where the zone starts.
     */
    from?: number;
    /**
     * (Highcharts, Highmaps) Settings for the cluster marker belonging to the
     * zone.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The value where the zone ends.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotMappointDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotMappointDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotMappointDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotMappointDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highmaps) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotMappointDragDropGuideBoxOptions {
    /**
     * (Highmaps) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Apply a jitter effect for the rendered markers. When
 * plotting discrete values, a little random noise may help telling the points
 * apart. The jitter setting applies a random displacement of up to `n` axis
 * units in either direction. So for example on a horizontal X axis, setting the
 * `jitter.x` to 0.24 will render the point in a random position between 0.24
 * units to the left and 0.24 units to the right of the true axis position. On a
 * category axis, setting it to 0.5 will fill up the bin and make the data
 * appear continuous.
 *
 * When rendered on top of a box plot or a column series, a jitter value of 0.24
 * will correspond to the underlying series' default groupPadding and
 * pointPadding settings.
 */
export interface PlotMappointJitterOptions {
    /**
     * (Highcharts, Highstock) The maximal X offset for the random jitter
     * effect.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) The maximal Y offset for the random jitter
     * effect.
     */
    y?: number;
}
/**
 * (Highmaps) A mappoint series is a special form of scatter series where the
 * points can be laid out in map coordinates on top of a map.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `mappoint` series are defined in plotOptions.mappoint.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotMappointOptions {
    /**
     * (Highmaps) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highmaps) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highmaps) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotMappointAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highmaps) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highmaps) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highmaps) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highmaps) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highmaps) Options for marker clusters, the concept of
     * sampling the data values into larger blocks in order to ease readability
     * and increase performance of the JavaScript charts.
     *
     * Note: marker clusters module is not working with `boost` and
     * `draggable-points` modules.
     *
     * The marker clusters feature requires the marker-clusters.js file to be
     * loaded, found in the modules directory of the download package, or online
     * at code.highcharts.com/modules/marker-clusters.js.
     */
    cluster?: PlotMappointClusterOptions;
    /**
     * (Highmaps) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highmaps) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highmaps) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highmaps) A reserved subspace to store options and values for customized
     * functionality. Here you can add additional data for your own event
     * callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highmaps) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotMappointDataLabelsOptions|Array<PlotMappointDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotMappointDataSortingOptions);
    /**
     * (Highmaps) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highmaps) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highmaps) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highmaps) General event handlers for the series items. These event hooks
     * can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highmaps) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highmaps) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock) Apply a jitter effect for the rendered markers.
     * When plotting discrete values, a little random noise may help telling the
     * points apart. The jitter setting applies a random displacement of up to
     * `n` axis units in either direction. So for example on a horizontal X
     * axis, setting the `jitter.x` to 0.24 will render the point in a random
     * position between 0.24 units to the left and 0.24 units to the right of
     * the true axis position. On a category axis, setting it to 0.5 will fill
     * up the bin and make the data appear continuous.
     *
     * When rendered on top of a box plot or a column series, a jitter value of
     * 0.24 will correspond to the underlying series' default groupPadding and
     * pointPadding settings.
     */
    jitter?: PlotMappointJitterOptions;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highmaps) An array specifying which option maps to which key in the data
     * point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highmaps) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highmaps) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highmaps) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highmaps) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highmaps) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highmaps) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highmaps) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highmaps) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highmaps) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotMfiAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotMfiDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotMfiDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotMfiDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotMfiDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Money Flow Index. This series requires `linkedTo` option to be
 * set and should be loaded after the `stock/indicators/indicators.js` file.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `mfi` series are defined in plotOptions.mfi.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotMfiOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotMfiAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotMfiDataLabelsOptions|Array<PlotMfiDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotMfiDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotMfiParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotMfiParamsOptions {
    /**
     * (Highstock) Number of maximum decimals that are used in MFI calculations.
     */
    decimals?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) The id of volume series which is mandatory. For example using
     * OHLC data, volumeSeriesID='volume' means the indicator will be calculated
     * using OHLC and volume values.
     */
    volumeSeriesID?: string;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotMomentumAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotMomentumDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotMomentumDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotMomentumDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotMomentumDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Momentum. This series requires `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `momentum` series are defined in plotOptions.momentum.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotMomentumOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotMomentumAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotMomentumDataLabelsOptions|Array<PlotMomentumDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotMomentumDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotMomentumParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotMomentumParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotNatrAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotNatrDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotNatrDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotNatrDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotNatrDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Normalized average true range indicator (NATR). This series
 * requires `linkedTo` option to be set and should be loaded after the
 * `stock/indicators/indicators.js` and `stock/indicators/atr.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `natr` series are defined in plotOptions.natr.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotNatrOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotNatrAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotNatrDataLabelsOptions|Array<PlotNatrDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotNatrDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotNatrParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotNatrParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotNetworkgraphDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The default
 * `color` setting is `"contrast"`, which is a pseudo color that Highcharts
 * picks up and applies the maximum contrast to the underlying point item, for
 * example the bar in a bar chart.
 *
 * The `textOutline` is a pseudo property that applies an outline of the given
 * width with the given color, which by default is the maximum contrast to the
 * text. So a bright text color will result in a black text outline for maximum
 * readability on a mixed background. In some cases, especially with grayscale
 * text, the text outline doesn't work well, in which cases it can be disabled
 * by setting it to `"none"`. When `useHTML` is true, the `textOutline` will not
 * be picked up. In this, case, the same effect can be acheived through the
 * `text-shadow` CSS property.
 *
 * For some series types, where each point has an extent, like for example tree
 * maps, the data label may overflow the point. There are two strategies for
 * handling overflow. By default, the text will wrap to multiple lines. The
 * other strategy is to set `style.textOverflow` to `ellipsis`, which will keep
 * the text on one line plus it will break inside long words.
 */
export interface PlotNetworkgraphDataLabelsStyleOptions {
    transition?: string;
}
export interface PlotNetworkgraphLayoutAlgorithmOptions {
    /**
     * (Highcharts) Approximation used to calculate repulsive forces affecting
     * nodes. By default, when calculateing net force, nodes are compared
     * against each other, which gives O(N^2) complexity. Using Barnes-Hut
     * approximation, we decrease this to O(N log N), but the resulting graph
     * will have different layout. Barnes-Hut approximation divides space into
     * rectangles via quad tree, where forces exerted on nodes are calculated
     * directly for nearby cells, and for all others, cells are treated as a
     * separate node with center of mass.
     */
    approximation?: OptionsApproximationValue;
    /**
     * (Highcharts) Attraction force applied on a node which is conected to
     * another node by a link. Passed are two arguments:
     *
     * - `d` - which is current distance between two nodes
     *
     * - `k` - which is desired distance between two nodes
     *
     * In `verlet` integration, defaults to: `function (d, k) { return (k - d) /
     * d; }`
     */
    attractiveForce?: Function;
    /**
     * (Highcharts) Experimental. Enables live simulation of the algorithm
     * implementation. All nodes are animated as the forces applies on them.
     */
    enableSimulation?: boolean;
    /**
     * (Highcharts) Friction applied on forces to prevent nodes rushing to fast
     * to the desired positions.
     */
    friction?: number;
    /**
     * (Highcharts) Gravitational const used in the barycenter force of the
     * algorithm.
     */
    gravitationalConstant?: number;
    /**
     * (Highcharts) When `initialPositions` are set to 'circle',
     * `initialPositionRadius` is a distance from the center of circle, in which
     * nodes are created.
     */
    initialPositionRadius?: number;
    /**
     * (Highcharts) Initial layout algorithm for positioning nodes. Can be one
     * of built-in options ("circle", "random") or a function where positions
     * should be set on each node (`this.nodes`) as `node.plotX` and
     * `node.plotY`
     */
    initialPositions?: ("circle"|"random"|Function);
    /**
     * (Highcharts) Integration type. Available options are `'euler'` and
     * `'verlet'`. Integration determines how forces are applied on particles.
     * In Euler integration, force is applied direct as `newPosition +=
     * velocity;`. In Verlet integration, new position is based on a previous
     * posittion without velocity: `newPosition += previousPosition -
     * newPosition`.
     *
     * Note that different integrations give different results as forces are
     * different.
     *
     * In Highcharts v7.0.x only `'euler'` integration was supported.
     */
    integration?: OptionsIntegrationValue;
    /**
     * (Highcharts) Ideal length (px) of the link between two nodes. When not
     * defined, length is calculated as: `Math.pow(availableWidth *
     * availableHeight / nodesLength, 0.4);`
     *
     * Note: Because of the algorithm specification, length of each link might
     * be not exactly as specified.
     */
    linkLength?: number;
    /**
     * (Highcharts) Max number of iterations before algorithm will stop. In
     * general, algorithm should find positions sooner, but when rendering huge
     * number of nodes, it is recommended to increase this value as finding
     * perfect graph positions can require more time.
     */
    maxIterations?: number;
    /**
     * (Highcharts) Verlet integration only. Max speed that node can get in one
     * iteration. In terms of simulation, it's a maximum translation (in pixels)
     * that node can move (in both, x and y, dimensions). While `friction` is
     * applied on all nodes, max speed is applied only for nodes that move very
     * fast, for example small or disconnected ones.
     */
    maxSpeed?: number;
    /**
     * (Highcharts) Repulsive force applied on a node. Passed are two arguments:
     *
     * - `d` - which is current distance between two nodes
     *
     * - `k` - which is desired distance between two nodes
     *
     * In `verlet` integration, defaults to: `function (d, k) { return (k - d) /
     * d * (k > d ? 1 : 0) }`
     */
    repulsiveForce?: Function;
    /**
     * (Highcharts) Barnes-Hut approximation only. Deteremines when distance
     * between cell and node is small enough to caculate forces. Value of
     * `theta` is compared directly with quotient `s / d`, where `s` is the size
     * of the cell, and `d` is distance between center of cell's mass and
     * currently compared node.
     */
    theta?: number;
    /**
     * (Highcharts) Type of the algorithm used when positioning nodes.
     */
    type?: "reingold-fruchterman";
}
/**
 * (Highcharts) Link style options
 */
export interface PlotNetworkgraphLinkOptions {
    /**
     * (Highcharts) Color of the link between two nodes.
     */
    color?: string;
    /**
     * (Highcharts) A name for the dash style to use for links.
     */
    dashStyle?: string;
    /**
     * (Highcharts) Width (px) of the link between two nodes.
     */
    width?: number;
}
/**
 * (Highcharts) A networkgraph is a type of relationship chart, where
 * connnections (links) attracts nodes (points) and other nodes repulse each
 * other.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `networkgraph` series are defined in
 * plotOptions.networkgraph.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotNetworkgraphOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (SeriesNetworkgraphDataLabelsOptionsObject|Array<SeriesNetworkgraphDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Flag to determine if nodes are draggable or not.
     */
    draggable?: boolean;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    layoutAlgorithm?: PlotNetworkgraphLayoutAlgorithmOptions;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Link style options
     */
    link?: PlotNetworkgraphLinkOptions;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotOhlcAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotOhlcDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotOhlcDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotOhlcDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotOhlcDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotOhlcDragDropGuideBoxOptions {
    /**
     * (Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highstock) An OHLC chart is a style of financial chart used to describe
 * price movements over time. It displays open, high, low and close values per
 * data point.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ohlc` series are defined in plotOptions.ohlc.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotOhlcOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotOhlcAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotOhlcDataLabelsOptions|Array<PlotOhlcDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotOhlcDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highstock) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highstock) The pixel width of the line/border. Defaults to `1`.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highstock) Determines which one of `open`, `high`, `low`, `close` values
     * should be represented as `point.y`, which is later used to set dataLabel
     * position and compare.
     */
    pointValKey?: OptionsPointValKeyValue;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Line color for up points.
     */
    upColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The plotOptions is a wrapper object
 * for config objects for each series type. The config objects for each series
 * can also be overridden for each series item as given in the series array.
 *
 * Configuration options for the series are given in three levels. Options for
 * all series in a chart are given in the plotOptions.series object. Then
 * options for all series of a specific type are given in the plotOptions of
 * that type, for example `plotOptions.line`. Next, options for one single
 * series are given in the series array.
 */
export interface PlotOptions {
    /**
     * (Highstock) Acceleration bands (ABANDS). This series requires the
     * `linkedTo` option to be set and should be loaded after the
     * `stock/indicators/indicators.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `abands` series are defined in plotOptions.abands.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    abands?: PlotAbandsOptions;
    /**
     * (Highstock) Accumulation Distribution (AD). This series requires
     * `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `ad` series are defined in plotOptions.ad.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    ad?: PlotAdOptions;
    /**
     * (Highstock) Awesome Oscillator. This series requires the `linkedTo`
     * option to be set and should be loaded after the
     * `stock/indicators/indicators.js`
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `ao` series are defined in plotOptions.ao.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    ao?: PlotAoOptions;
    /**
     * (Highstock) Absolute Price Oscillator. This series requires the
     * `linkedTo` option to be set and should be loaded after the
     * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `apo` series are defined in plotOptions.apo.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    apo?: PlotApoOptions;
    /**
     * (Highcharts, Highstock) The area series type.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `area` series are defined in plotOptions.area.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    area?: PlotAreaOptions;
    /**
     * (Highcharts, Highstock) The area range series is a carteseian series with
     * higher and lower values for each point along an X axis, where the area
     * between the values is shaded.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `arearange` series are defined in
     * plotOptions.arearange.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    arearange?: PlotArearangeOptions;
    /**
     * (Highcharts, Highstock) The area spline series is an area series where
     * the graph between the points is smoothed into a spline.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `areaspline` series are defined in
     * plotOptions.areaspline.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    areaspline?: PlotAreasplineOptions;
    /**
     * (Highcharts, Highstock) The area spline range is a cartesian series type
     * with higher and lower Y values along an X axis. The area inside the range
     * is colored, and the graph outlining the area is a smoothed spline.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `areasplinerange` series are defined in
     * plotOptions.areasplinerange.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    areasplinerange?: PlotAreasplinerangeOptions;
    /**
     * (Highstock) Aroon. This series requires the `linkedTo` option to be set
     * and should be loaded after the `stock/indicators/indicators.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `aroon` series are defined in plotOptions.aroon.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    aroon?: PlotAroonOptions;
    /**
     * (Highstock) Aroon Oscillator. This series requires the `linkedTo` option
     * to be set and should be loaded after the `stock/indicators/indicators.js`
     * and `stock/indicators/aroon.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `aroonoscillator` series are defined in
     * plotOptions.aroonoscillator.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    aroonoscillator?: PlotAroonoscillatorOptions;
    /**
     * (Highstock) Average true range indicator (ATR). This series requires
     * `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `atr` series are defined in plotOptions.atr.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    atr?: PlotAtrOptions;
    /**
     * (Highcharts) A bar series is a special type of column series where the
     * columns are horizontal.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `bar` series are defined in plotOptions.bar.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    bar?: PlotBarOptions;
    /**
     * (Highstock) Bollinger bands (BB). This series requires the `linkedTo`
     * option to be set and should be loaded after the
     * `stock/indicators/indicators.js` file.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `bb` series are defined in plotOptions.bb.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    bb?: PlotBbOptions;
    /**
     * (Highcharts) A bell curve is an areaspline series which represents the
     * probability density function of the normal distribution. It calculates
     * mean and standard deviation of the base series data and plots the curve
     * according to the calculated parameters.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `bellcurve` series are defined in
     * plotOptions.bellcurve.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    bellcurve?: PlotBellcurveOptions;
    /**
     * (Highcharts) A box plot is a convenient way of depicting groups of data
     * through their five-number summaries: the smallest observation (sample
     * minimum), lower quartile (Q1), median (Q2), upper quartile (Q3), and
     * largest observation (sample maximum).
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `boxplot` series are defined in plotOptions.boxplot.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    boxplot?: PlotBoxplotOptions;
    /**
     * (Highcharts, Highstock) A bubble series is a three dimensional series
     * type where each point renders an X, Y and Z value. Each points is drawn
     * as a bubble where the position along the X and Y axes mark the X and Y
     * values, and the size of the bubble relates to the Z value.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `bubble` series are defined in plotOptions.bubble.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    bubble?: PlotBubbleOptions;
    /**
     * (Highcharts) A bullet graph is a variation of a bar graph. The bullet
     * graph features a single measure, compares it to a target, and displays it
     * in the context of qualitative ranges of performance that could be set
     * using plotBands on yAxis.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `bullet` series are defined in plotOptions.bullet.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    bullet?: PlotBulletOptions;
    /**
     * (Highstock) A candlestick chart is a style of financial chart used to
     * describe price movements over time.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `candlestick` series are defined in
     * plotOptions.candlestick.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    candlestick?: PlotCandlestickOptions;
    /**
     * (Highstock) Commodity Channel Index (CCI). This series requires
     * `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `cci` series are defined in plotOptions.cci.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    cci?: PlotCciOptions;
    /**
     * (Highstock) Chaikin Oscillator. This series requires the `linkedTo`
     * option to be set and should be loaded after the
     * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `chaikin` series are defined in plotOptions.chaikin.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    chaikin?: PlotChaikinOptions;
    /**
     * (Highstock) Chaikin Money Flow indicator (cmf).
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `cmf` series are defined in plotOptions.cmf.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    cmf?: PlotCmfOptions;
    /**
     * (Highcharts, Highstock) Column series display one column per value along
     * an X axis.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `column` series are defined in plotOptions.column.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    column?: PlotColumnOptions;
    /**
     * (Highcharts, Highstock) Column pyramid series display one pyramid per
     * value along an X axis. To display horizontal pyramids, set chart.inverted
     * to `true`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `columnpyramid` series are defined in
     * plotOptions.columnpyramid.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    columnpyramid?: PlotColumnpyramidOptions;
    /**
     * (Highcharts, Highstock) The column range is a cartesian series type with
     * higher and lower Y values along an X axis. To display horizontal bars,
     * set chart.inverted to `true`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `columnrange` series are defined in
     * plotOptions.columnrange.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    columnrange?: PlotColumnrangeOptions;
    /**
     * (Highcharts) A cylinder graph is a variation of a 3d column graph. The
     * cylinder graph features cylindrical points.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `cylinder` series are defined in plotOptions.cylinder.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    cylinder?: PlotCylinderOptions;
    /**
     * (Highstock) Double exponential moving average (DEMA) indicator. This
     * series requires `linkedTo` option to be set and should be loaded after
     * the `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `dema` series are defined in plotOptions.dema.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    dema?: PlotDemaOptions;
    /**
     * (Highcharts) A dependency wheel chart is a type of flow diagram, where
     * all nodes are laid out in a circle, and the flow between the are drawn as
     * link bands.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `dependencywheel` series are defined in
     * plotOptions.dependencywheel.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    dependencywheel?: PlotDependencywheelOptions;
    /**
     * (Highstock) Detrended Price Oscillator. This series requires the
     * `linkedTo` option to be set and should be loaded after the
     * `stock/indicators/indicators.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `dpo` series are defined in plotOptions.dpo.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    dpo?: PlotDpoOptions;
    /**
     * (Highcharts, Highstock) The dumbbell series is a cartesian series with
     * higher and lower values for each point along an X axis, connected with a
     * line between the values. Requires `highcharts-more.js` and
     * `modules/dumbbell.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `dumbbell` series are defined in plotOptions.dumbbell.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    dumbbell?: PlotDumbbellOptions;
    /**
     * (Highstock) Exponential moving average indicator (EMA). This series
     * requires the `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `ema` series are defined in plotOptions.ema.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    ema?: PlotEmaOptions;
    /**
     * (Highcharts, Highstock) Error bars are a graphical representation of the
     * variability of data and are used on graphs to indicate the error, or
     * uncertainty in a reported measurement.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `errorbar` series are defined in plotOptions.errorbar.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    errorbar?: PlotErrorbarOptions;
    /**
     * (Highstock) Flags are used to mark events in stock charts. They can be
     * added on the timeline, or attached to a specific series.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `flags` series are defined in plotOptions.flags.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    flags?: PlotFlagsOptions;
    /**
     * (Highcharts) Funnel charts are a type of chart often used to visualize
     * stages in a sales project, where the top are the initial stages with the
     * most clients. It requires that the modules/funnel.js file is loaded.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `funnel` series are defined in plotOptions.funnel.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    funnel?: PlotFunnelOptions;
    /**
     * (Highcharts) A funnel3d is a 3d version of funnel series type. Funnel
     * charts are a type of chart often used to visualize stages in a sales
     * project, where the top are the initial stages with the most clients.
     *
     * It requires that the `highcharts-3d.js`, `cylinder.js` and `funnel3d.js`
     * module are loaded.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `funnel3d` series are defined in plotOptions.funnel3d.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    funnel3d?: PlotFunnel3dOptions;
    /**
     * (Gantt) A `gantt` series. If the type option is not specified, it is
     * inherited from chart.type.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `gantt` series are defined in plotOptions.gantt.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    gantt?: PlotGanttOptions;
    /**
     * (Highcharts) Gauges are circular plots displaying one or more values with
     * a dial pointing to values along the perimeter.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `gauge` series are defined in plotOptions.gauge.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    gauge?: PlotGaugeOptions;
    /**
     * (Highcharts, Highmaps) A heatmap is a graphical representation of data
     * where the individual values contained in a matrix are represented as
     * colors.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `heatmap` series are defined in plotOptions.heatmap.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    heatmap?: PlotHeatmapOptions;
    /**
     * (Highcharts) A histogram is a column series which represents the
     * distribution of the data set in the base series. Histogram splits data
     * into bins and shows their frequencies.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `histogram` series are defined in
     * plotOptions.histogram.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    histogram?: PlotHistogramOptions;
    /**
     * (Highstock) Ichimoku Kinko Hyo (IKH). This series requires `linkedTo`
     * option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `ikh` series are defined in plotOptions.ikh.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    ikh?: PlotIkhOptions;
    /**
     * (Highcharts) An item chart is an infographic chart where a number of
     * items are laid out in either a rectangular or circular pattern. It can be
     * used to visualize counts within a group, or for the circular pattern,
     * typically a parliament.
     *
     * The circular layout has much in common with a pie chart. Many of the item
     * series options, like `center`, `size` and data label positioning, are
     * inherited from the pie series and don't apply for rectangular layouts.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `item` series are defined in plotOptions.item.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    item?: PlotItemOptions;
    /**
     * (Highstock) Keltner Channels. This series requires the `linkedTo` option
     * to be set and should be loaded after the
     * `stock/indicators/indicators.js`, `stock/indicators/atr.js`, and
     * `stock/ema/.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `keltnerchannels` series are defined in
     * plotOptions.keltnerchannels.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    keltnerchannels?: PlotKeltnerchannelsOptions;
    /**
     * (Highcharts, Highstock) A line series displays information as a series of
     * data points connected by straight line segments.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `line` series are defined in plotOptions.line.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    line?: PlotLineOptions;
    /**
     * (Highstock) Linear regression indicator. This series requires `linkedTo`
     * option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `linearregression` series are defined in
     * plotOptions.linearregression.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    linearregression?: PlotLinearregressionOptions;
    /**
     * (Highstock) Linear regression angle indicator. This series requires
     * `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `linearregressionangle` series are defined in
     * plotOptions.linearregressionangle.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    linearregressionangle?: PlotLinearregressionangleOptions;
    /**
     * (Highstock) Linear regression intercept indicator. This series requires
     * `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `linearregressionintercept` series are defined in
     * plotOptions.linearregressionintercept.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    linearregressionintercept?: PlotLinearregressioninterceptOptions;
    /**
     * (Highstock) Linear regression slope indicator. This series requires
     * `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `linearregressionslope` series are defined in
     * plotOptions.linearregressionslope.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    linearregressionslope?: PlotLinearregressionslopeOptions;
    /**
     * (Highcharts, Highstock) The lollipop series is a carteseian series with a
     * line anchored from the x axis and a dot at the end to mark the value.
     * Requires `highcharts-more.js`, `modules/dumbbell.js` and
     * `modules/lollipop.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `lollipop` series are defined in plotOptions.lollipop.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    lollipop?: PlotLollipopOptions;
    /**
     * (Highstock) Moving Average Convergence Divergence (MACD). This series
     * requires `linkedTo` option to be set and should be loaded after the
     * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `macd` series are defined in plotOptions.macd.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    macd?: PlotMacdOptions;
    /**
     * (Highmaps) The map series is used for basic choropleth maps, where each
     * map area has a color based on its value.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `map` series are defined in plotOptions.map.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    map?: PlotMapOptions;
    /**
     * (Highmaps) A map bubble series is a bubble series laid out on top of a
     * map series, where each bubble is tied to a specific map area.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `mapbubble` series are defined in
     * plotOptions.mapbubble.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    mapbubble?: PlotMapbubbleOptions;
    /**
     * (Highmaps) A mapline series is a special case of the map series where the
     * value colors are applied to the strokes rather than the fills. It can
     * also be used for freeform drawing, like dividers, in the map.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `mapline` series are defined in plotOptions.mapline.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    mapline?: PlotMaplineOptions;
    /**
     * (Highmaps) A mappoint series is a special form of scatter series where
     * the points can be laid out in map coordinates on top of a map.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `mappoint` series are defined in plotOptions.mappoint.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    mappoint?: PlotMappointOptions;
    /**
     * (Highstock) Money Flow Index. This series requires `linkedTo` option to
     * be set and should be loaded after the `stock/indicators/indicators.js`
     * file.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `mfi` series are defined in plotOptions.mfi.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    mfi?: PlotMfiOptions;
    /**
     * (Highstock) Momentum. This series requires `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `momentum` series are defined in plotOptions.momentum.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    momentum?: PlotMomentumOptions;
    /**
     * (Highstock) Normalized average true range indicator (NATR). This series
     * requires `linkedTo` option to be set and should be loaded after the
     * `stock/indicators/indicators.js` and `stock/indicators/atr.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `natr` series are defined in plotOptions.natr.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    natr?: PlotNatrOptions;
    /**
     * (Highcharts) A networkgraph is a type of relationship chart, where
     * connnections (links) attracts nodes (points) and other nodes repulse each
     * other.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `networkgraph` series are defined in
     * plotOptions.networkgraph.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    networkgraph?: PlotNetworkgraphOptions;
    /**
     * (Highstock) An OHLC chart is a style of financial chart used to describe
     * price movements over time. It displays open, high, low and close values
     * per data point.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `ohlc` series are defined in plotOptions.ohlc.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    ohlc?: PlotOhlcOptions;
    /**
     * (Highcharts) An organization chart is a diagram that shows the structure
     * of an organization and the relationships and relative ranks of its parts
     * and positions.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `organization` series are defined in
     * plotOptions.organization.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    organization?: PlotOrganizationOptions;
    /**
     * (Highcharts) A packed bubble series is a two dimensional series type,
     * where each point renders a value in X, Y position. Each point is drawn as
     * a bubble where the bubbles don't overlap with each other and the radius
     * of the bubble relates to the value.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `packedbubble` series are defined in
     * plotOptions.packedbubble.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    packedbubble?: PlotPackedbubbleOptions;
    /**
     * (Highcharts) A pareto diagram is a type of chart that contains both bars
     * and a line graph, where individual values are represented in descending
     * order by bars, and the cumulative total is represented by the line.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `pareto` series are defined in plotOptions.pareto.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    pareto?: PlotParetoOptions;
    /**
     * (Highstock) Price channel (PC). This series requires the `linkedTo`
     * option to be set and should be loaded after the
     * `stock/indicators/indicators.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `pc` series are defined in plotOptions.pc.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    pc?: PlotPcOptions;
    /**
     * (Highcharts) A pie chart is a circular graphic which is divided into
     * slices to illustrate numerical proportion.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `pie` series are defined in plotOptions.pie.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    pie?: PlotPieOptions;
    /**
     * (Highstock) Pivot points indicator. This series requires the `linkedTo`
     * option to be set and should be loaded after
     * `stock/indicators/indicators.js` file.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `pivotpoints` series are defined in
     * plotOptions.pivotpoints.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    pivotpoints?: PlotPivotpointsOptions;
    /**
     * (Highcharts, Highstock) A polygon series can be used to draw any freeform
     * shape in the cartesian coordinate system. A fill is applied with the
     * `color` option, and stroke is applied through `lineWidth` and `lineColor`
     * options.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `polygon` series are defined in plotOptions.polygon.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    polygon?: PlotPolygonOptions;
    /**
     * (Highstock) Percentage Price Oscillator. This series requires the
     * `linkedTo` option to be set and should be loaded after the
     * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `ppo` series are defined in plotOptions.ppo.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    ppo?: PlotPpoOptions;
    /**
     * (Highstock) Price envelopes indicator based on SMA calculations. This
     * series requires the `linkedTo` option to be set and should be loaded
     * after the `stock/indicators/indicators.js` file.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `priceenvelopes` series are defined in
     * plotOptions.priceenvelopes.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    priceenvelopes?: PlotPriceenvelopesOptions;
    /**
     * (Highstock) Parabolic SAR. This series requires `linkedTo` option to be
     * set and should be loaded after `stock/indicators/indicators.js` file.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `psar` series are defined in plotOptions.psar.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    psar?: PlotPsarOptions;
    /**
     * (Highcharts) A pyramid series is a special type of funnel, without neck
     * and reversed by default.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `pyramid` series are defined in plotOptions.pyramid.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    pyramid?: PlotPyramidOptions;
    /**
     * (Highcharts) A pyramid3d is a 3d version of pyramid series type. Pyramid
     * charts are a type of chart often used to visualize stages in a sales
     * project, where the top are the initial stages with the most clients.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `pyramid3d` series are defined in
     * plotOptions.pyramid3d.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    pyramid3d?: PlotPyramid3dOptions;
    /**
     * (Highstock) Rate of change indicator (ROC). The indicator value for each
     * point is defined as:
     *
     * `(C - Cn) / Cn * 100`
     *
     * where: `C` is the close value of the point of the same x in the linked
     * series and `Cn` is the close value of the point `n` periods ago. `n` is
     * set through period.
     *
     * This series requires `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `roc` series are defined in plotOptions.roc.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    roc?: PlotRocOptions;
    /**
     * (Highstock) Relative strength index (RSI) technical indicator. This
     * series requires the `linkedTo` option to be set and should be loaded
     * after the `stock/indicators/indicators.js` file.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `rsi` series are defined in plotOptions.rsi.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    rsi?: PlotRsiOptions;
    /**
     * (Highcharts) A sankey diagram is a type of flow diagram, in which the
     * width of the link between two nodes is shown proportionally to the flow
     * quantity.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `sankey` series are defined in plotOptions.sankey.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    sankey?: PlotSankeyOptions;
    /**
     * (Highcharts, Highstock) A scatter plot uses cartesian coordinates to
     * display values for two variables for a set of data.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `scatter` series are defined in plotOptions.scatter.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    scatter?: PlotScatterOptions;
    /**
     * (Highcharts) A 3D scatter plot uses x, y and z coordinates to display
     * values for three variables for a set of data.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `scatter3d` series are defined in
     * plotOptions.scatter3d.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    scatter3d?: PlotScatter3dOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) General options for all series
     * types.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `line` series are defined in plotOptions.line.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    series?: PlotSeriesOptions;
    /**
     * (Highstock) Slow Stochastic oscillator. This series requires the
     * `linkedTo` option to be set and should be loaded after
     * `stock/indicators/indicators.js` and `stock/indicators/stochastic.js`
     * files.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `slowstochastic` series are defined in
     * plotOptions.slowstochastic.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    slowstochastic?: PlotSlowstochasticOptions;
    /**
     * (Highstock) Simple moving average indicator (SMA). This series requires
     * `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `sma` series are defined in plotOptions.sma.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    sma?: PlotSmaOptions;
    /**
     * (Highcharts) A solid gauge is a circular gauge where the value is
     * indicated by a filled arc, and the color of the arc may variate with the
     * value.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `solidgauge` series are defined in
     * plotOptions.solidgauge.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    solidgauge?: PlotSolidgaugeOptions;
    /**
     * (Highcharts, Highstock) A spline series is a special type of line series,
     * where the segments between the data points are smoothed.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `spline` series are defined in plotOptions.spline.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    spline?: PlotSplineOptions;
    /**
     * (Highstock) Stochastic oscillator. This series requires the `linkedTo`
     * option to be set and should be loaded after the
     * `stock/indicators/indicators.js` file.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `stochastic` series are defined in
     * plotOptions.stochastic.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    stochastic?: PlotStochasticOptions;
    /**
     * (Highcharts, Highstock) A streamgraph is a type of stacked area graph
     * which is displaced around a central axis, resulting in a flowing, organic
     * shape.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `streamgraph` series are defined in
     * plotOptions.streamgraph.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    streamgraph?: PlotStreamgraphOptions;
    /**
     * (Highcharts) A Sunburst displays hierarchical data, where a level in the
     * hierarchy is represented by a circle. The center represents the root node
     * of the tree. The visualization bears a resemblance to both treemap and
     * pie charts.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `sunburst` series are defined in plotOptions.sunburst.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    sunburst?: PlotSunburstOptions;
    /**
     * (Highstock) Supertrend indicator. This series requires the `linkedTo`
     * option to be set and should be loaded after the
     * `stock/indicators/indicators.js` and `stock/indicators/sma.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `supertrend` series are defined in
     * plotOptions.supertrend.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    supertrend?: PlotSupertrendOptions;
    /**
     * (Highstock) Triple exponential moving average (TEMA) indicator. This
     * series requires `linkedTo` option to be set and should be loaded after
     * the `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `tema` series are defined in plotOptions.tema.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    tema?: PlotTemaOptions;
    /**
     * (Highcharts, Highmaps) A tilemap series is a type of heatmap where the
     * tile shapes are configurable.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `tilemap` series are defined in plotOptions.tilemap.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    tilemap?: PlotTilemapOptions;
    /**
     * (Highcharts) The timeline series presents given events along a drawn
     * line.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `timeline` series are defined in plotOptions.timeline.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    timeline?: PlotTimelineOptions;
    /**
     * (Highcharts) A treemap displays hierarchical data using nested
     * rectangles. The data can be laid out in varying ways depending on
     * options.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `treemap` series are defined in plotOptions.treemap.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    treemap?: PlotTreemapOptions;
    /**
     * (Highstock) Trendline (linear regression) fits a straight line to the
     * selected data using a method called the Sum Of Least Squares. This series
     * requires the `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `trendline` series are defined in
     * plotOptions.trendline.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    trendline?: PlotTrendlineOptions;
    /**
     * (Highstock) Triple exponential average (TRIX) oscillator. This series
     * requires `linkedTo` option to be set.
     *
     * Requires https://code.highcharts.com/stock/indicators/ema.js and
     * https://code.highcharts.com/stock/indicators/tema.js.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `trix` series are defined in plotOptions.trix.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    trix?: PlotTrixOptions;
    /**
     * (Highcharts) A variable pie series is a two dimensional series type,
     * where each point renders an Y and Z value. Each point is drawn as a pie
     * slice where the size (arc) of the slice relates to the Y value and the
     * radius of pie slice relates to the Z value.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `variablepie` series are defined in
     * plotOptions.variablepie.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    variablepie?: PlotVariablepieOptions;
    /**
     * (Highcharts) A variwide chart (related to marimekko chart) is a column
     * chart with a variable width expressing a third dimension.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `variwide` series are defined in plotOptions.variwide.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    variwide?: PlotVariwideOptions;
    /**
     * (Highstock) Volume By Price indicator.
     *
     * This series requires `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `vbp` series are defined in plotOptions.vbp.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    vbp?: PlotVbpOptions;
    /**
     * (Highcharts, Highstock) A vector plot is a type of cartesian chart where
     * each point has an X and Y position, a length and a direction. Vectors are
     * drawn as arrows.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `vector` series are defined in plotOptions.vector.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    vector?: PlotVectorOptions;
    /**
     * (Highcharts) A Venn diagram displays all possible logical relations
     * between a collection of different sets. The sets are represented by
     * circles, and the relation between the sets are displayed by the overlap
     * or lack of overlap between them. The venn diagram is a special case of
     * Euler diagrams, which can also be displayed by this series type.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `venn` series are defined in plotOptions.venn.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    venn?: PlotVennOptions;
    /**
     * (Highstock) Volume Weighted Average Price indicator.
     *
     * This series requires `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `vwap` series are defined in plotOptions.vwap.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    vwap?: PlotVwapOptions;
    /**
     * (Highcharts) A waterfall chart displays sequentially introduced positive
     * or negative values in cumulative columns.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `waterfall` series are defined in
     * plotOptions.waterfall.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    waterfall?: PlotWaterfallOptions;
    /**
     * (Highstock) Williams %R. This series requires the `linkedTo` option to be
     * set and should be loaded after the `stock/indicators/indicators.js`.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `williamsr` series are defined in
     * plotOptions.williamsr.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    williamsr?: PlotWilliamsrOptions;
    /**
     * (Highcharts, Highstock) Wind barbs are a convenient way to represent wind
     * speed and direction in one graphical form. Wind direction is given by the
     * stem direction, and wind speed by the number and shape of barbs.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `windbarb` series are defined in plotOptions.windbarb.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    windbarb?: PlotWindbarbOptions;
    /**
     * (Highstock) Weighted moving average indicator (WMA). This series requires
     * `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `wma` series are defined in plotOptions.wma.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    wma?: PlotWmaOptions;
    /**
     * (Highcharts) A word cloud is a visualization of a set of words, where the
     * size and placement of a word is determined by how it is weighted.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `wordcloud` series are defined in
     * plotOptions.wordcloud.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    wordcloud?: PlotWordcloudOptions;
    /**
     * (Highcharts, Highstock, Gantt) The X-range series displays ranges on the
     * X axis, typically time intervals with a start and end date.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `xrange` series are defined in plotOptions.xrange.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    xrange?: PlotXrangeOptions;
    /**
     * (Highstock) Zig Zag indicator.
     *
     * This series requires `linkedTo` option to be set.
     *
     * In TypeScript the type option must always be set.
     *
     * Configuration options for the series are given in three levels:
     *
     * 1. Options for all series in a chart are defined in the
     * plotOptions.series object.
     *
     * 2. Options for all `zigzag` series are defined in plotOptions.zigzag.
     *
     * 3. Options for one single series are given in the series instance array.
     * (see online documentation for example)
     */
    zigzag?: PlotZigzagOptions;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotOrganizationAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotOrganizationDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotOrganizationLevelsDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Set options on specific levels. Takes precedence over series
 * options, but not node and link options.
 */
export interface PlotOrganizationLevelsOptions {
    /**
     * (Highcharts) Can set `borderColor` on all nodes which lay on the same
     * level.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts) Can set `borderWidth` on all nodes which lay on the same
     * level.
     */
    borderWidth?: number;
    /**
     * (Highcharts) Can set `color` on all nodes which lay on the same level.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Can set `colorByPoint` on all nodes which lay on the same
     * level.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Can set `dataLabels` on all
     * points which lay on the same level.
     */
    dataLabels?: (SeriesSankeyDataLabelsOptionsObject|Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) Decides which level takes effect from the options set in the
     * levels object.
     */
    level?: number;
    /**
     * (Highcharts) Can set `linkOpacity` on all points which lay on the same
     * level.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) Can set `states` on all nodes and points which lay on the
     * same level.
     */
    states?: SeriesStatesOptionsObject;
}
/**
 * (Highcharts) An organization chart is a diagram that shows the structure of
 * an organization and the relationships and relative ranks of its parts and
 * positions.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `organization` series are defined in
 * plotOptions.organization.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotOrganizationOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotOrganizationAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Gantt) The border color of the node cards.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts) The border radius of the node cards.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the data labels
     * appearing on top of the nodes and links. For sankey charts, data labels
     * are visible for the nodes by default, but hidden for links. This is
     * controlled by modifying the `nodeFormat`, and the `format` that applies
     * to links and is an empty string by default.
     */
    dataLabels?: (SeriesOrganizationDataLabelsOptionsObject|Array<SeriesOrganizationDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) The indentation in pixels of hanging nodes, nodes which
     * parent has layout set to `hanging`.
     */
    hangingIndent?: number;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) Set options on specific levels. Takes precedence over series
     * options, but not node and link options.
     */
    levels?: Array<PlotOrganizationLevelsOptions>;
    /**
     * (Highcharts) The color of the links between nodes.
     */
    linkColor?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) The line width of the links connecting nodes, in pixels.
     */
    linkLineWidth?: number;
    /**
     * (Highcharts) Opacity for the links between nodes in the sankey diagram.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) Radius for the rounded corners of the links between nodes.
     */
    linkRadius?: number;
    /**
     * (Highcharts) The minimal width for a line of a sankey. By default, 0
     * values are not shown.
     */
    minLinkWidth?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The padding between nodes in a sankey diagram or dependency
     * wheel, in pixels.
     *
     * If the number of nodes is so great that it is possible to lay them out
     * within the plot area with the given `nodePadding`, they will be rendered
     * with a smaller padding as a strategy to avoid overflow.
     */
    nodePadding?: number;
    /**
     * (Highcharts) In a horizontal chart, the width of the nodes in pixels.
     * Node that most organization charts are vertical, so the name of this
     * option is counterintuitive.
     */
    nodeWidth?: number;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPackedbubbleAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPackedbubbleDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The default
 * `color` setting is `"contrast"`, which is a pseudo color that Highcharts
 * picks up and applies the maximum contrast to the underlying point item, for
 * example the bar in a bar chart.
 *
 * The `textOutline` is a pseudo property that applies an outline of the given
 * width with the given color, which by default is the maximum contrast to the
 * text. So a bright text color will result in a black text outline for maximum
 * readability on a mixed background. In some cases, especially with grayscale
 * text, the text outline doesn't work well, in which cases it can be disabled
 * by setting it to `"none"`. When `useHTML` is true, the `textOutline` will not
 * be picked up. In this, case, the same effect can be acheived through the
 * `text-shadow` CSS property.
 *
 * For some series types, where each point has an extent, like for example tree
 * maps, the data label may overflow the point. There are two strategies for
 * handling overflow. By default, the text will wrap to multiple lines. The
 * other strategy is to set `style.textOverflow` to `ellipsis`, which will keep
 * the text on one line plus it will break inside long words.
 */
export interface PlotPackedbubbleDataLabelsStyleOptions {
    transition?: string;
}
/**
 * (Highcharts) Options for layout algorithm when simulation is enabled. Inside
 * there are options to change the speed, padding, initial bubbles positions and
 * more.
 */
export interface PlotPackedbubbleLayoutAlgorithmOptions {
    /**
     * (Highcharts) The distance between two bubbles, when the algorithm starts
     * to treat two bubbles as overlapping. The `bubblePadding` is also the
     * expected distance between all the bubbles on simulation end.
     */
    bubblePadding?: number;
    /**
     * (Highcharts) In case of split series, this option allows user to drag and
     * drop points between series, for changing point related series.
     */
    dragBetweenSeries?: boolean;
    /**
     * (Highcharts) Experimental. Enables live simulation of the algorithm
     * implementation. All nodes are animated as the forces applies on them.
     */
    enableSimulation?: boolean;
    /**
     * (Highcharts) Friction applied on forces to prevent nodes rushing to fast
     * to the desired positions.
     */
    friction?: number;
    /**
     * (Highcharts) Gravitational const used in the barycenter force of the
     * algorithm.
     */
    gravitationalConstant?: number;
    /**
     * (Highcharts) When `initialPositions` are set to 'circle',
     * `initialPositionRadius` is a distance from the center of circle, in which
     * nodes are created.
     */
    initialPositionRadius?: number;
    /**
     * (Highcharts) Initial layout algorithm for positioning nodes. Can be one
     * of the built-in options ("circle", "random") or a function where
     * positions should be set on each node (`this.nodes`) as `node.plotX` and
     * `node.plotY`.
     */
    initialPositions?: ("circle"|"random"|Function);
    /**
     * (Highcharts) Integration type. Available options are `'euler'` and
     * `'verlet'`. Integration determines how forces are applied on particles.
     * In Euler integration, force is applied direct as `newPosition +=
     * velocity;`. In Verlet integration, new position is based on a previous
     * posittion without velocity: `newPosition += previousPosition -
     * newPosition`.
     *
     * Note that different integrations give different results as forces are
     * different.
     *
     * In Highcharts v7.0.x only `'euler'` integration was supported.
     */
    integration?: OptionsIntegrationValue;
    /**
     * (Highcharts) Ideal length (px) of the link between two nodes. When not
     * defined, length is calculated as: `Math.pow(availableWidth *
     * availableHeight / nodesLength, 0.4);`
     *
     * Note: Because of the algorithm specification, length of each link might
     * be not exactly as specified.
     */
    linkLength?: number;
    /**
     * (Highcharts) Max number of iterations before algorithm will stop. In
     * general, algorithm should find positions sooner, but when rendering huge
     * number of nodes, it is recommended to increase this value as finding
     * perfect graph positions can require more time.
     */
    maxIterations?: number;
    /**
     * (Highcharts) Max speed that node can get in one iteration. In terms of
     * simulation, it's a maximum translation (in pixels) that a node can move
     * (in both, x and y, dimensions). While `friction` is applied on all nodes,
     * max speed is applied only for nodes that move very fast, for example
     * small or disconnected ones.
     */
    maxSpeed?: number;
    /**
     * (Highcharts) Whether bubbles should interact with their parentNode to
     * keep them inside.
     */
    parentNodeLimit?: boolean;
    /**
     * (Highcharts) Layout algorithm options for parent nodes.
     */
    parentNodeOptions?: PlotPackedbubbleLayoutAlgorithmParentNodeOptions;
    /**
     * (Highcharts) Whether series should interact with each other or not. When
     * `parentNodeLimit` is set to true, thi option should be set to false to
     * avoid sticking points in wrong series parentNode.
     */
    seriesInteraction?: boolean;
    /**
     * (Highcharts) Whether to split series into individual groups or to mix all
     * series together.
     */
    splitSeries?: string;
    /**
     * (Highcharts) Type of the algorithm used when positioning nodes.
     */
    type?: "reingold-fruchterman";
}
/**
 * (Highcharts) Layout algorithm options for parent nodes.
 */
export interface PlotPackedbubbleLayoutAlgorithmParentNodeOptions {
    /**
     * (Highcharts) Friction applied on forces to prevent nodes rushing to fast
     * to the desired positions.
     */
    friction?: number;
    /**
     * (Highcharts) Gravitational const used in the barycenter force of the
     * algorithm.
     */
    gravitationalConstant?: number;
    /**
     * (Highcharts) When `initialPositions` are set to 'circle',
     * `initialPositionRadius` is a distance from the center of circle, in which
     * nodes are created.
     */
    initialPositionRadius?: number;
    /**
     * (Highcharts) Initial layout algorithm for positioning nodes. Can be one
     * of built-in options ("circle", "random") or a function where positions
     * should be set on each node (`this.nodes`) as `node.plotX` and
     * `node.plotY`
     */
    initialPositions?: ("circle"|"random"|Function);
    /**
     * (Highcharts) Integration type. Available options are `'euler'` and
     * `'verlet'`. Integration determines how forces are applied on particles.
     * In Euler integration, force is applied direct as `newPosition +=
     * velocity;`. In Verlet integration, new position is based on a previous
     * posittion without velocity: `newPosition += previousPosition -
     * newPosition`.
     *
     * Note that different integrations give different results as forces are
     * different.
     *
     * In Highcharts v7.0.x only `'euler'` integration was supported.
     */
    integration?: OptionsIntegrationValue;
    /**
     * (Highcharts) Ideal length (px) of the link between two nodes. When not
     * defined, length is calculated as: `Math.pow(availableWidth *
     * availableHeight / nodesLength, 0.4);`
     *
     * Note: Because of the algorithm specification, length of each link might
     * be not exactly as specified.
     */
    linkLength?: number;
    /**
     * (Highcharts) Styling options for parentNodes markers. Similar to
     * line.marker options.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts) Max number of iterations before algorithm will stop. In
     * general, algorithm should find positions sooner, but when rendering huge
     * number of nodes, it is recommended to increase this value as finding
     * perfect graph positions can require more time.
     */
    maxIterations?: number;
    /**
     * (Highcharts) Verlet integration only. Max speed that node can get in one
     * iteration. In terms of simulation, it's a maximum translation (in pixels)
     * that node can move (in both, x and y, dimensions). While `friction` is
     * applied on all nodes, max speed is applied only for nodes that move very
     * fast, for example small or disconnected ones.
     */
    maxSpeed?: number;
    seriesInteraction?: boolean;
    /**
     * (Highcharts) Type of the algorithm used when positioning nodes.
     */
    type?: "reingold-fruchterman";
}
/**
 * (Highcharts) A packed bubble series is a two dimensional series type, where
 * each point renders a value in X, Y position. Each point is drawn as a bubble
 * where the bubbles don't overlap with each other and the radius of the bubble
 * relates to the value.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `packedbubble` series are defined in
 * plotOptions.packedbubble.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPackedbubbleOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPackedbubbleAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) If there are more points in the series than the
     * `animationLimit`, the animation won't run. Animation affects overall
     * performance and doesn't work well with heavy data series.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (SeriesPackedBubbleDataLabelsOptionsObject|Array<SeriesPackedBubbleDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Whether to display negative sized bubbles. The threshold is
     * given by the zThreshold option, and negative bubbles can be visualized by
     * setting negativeColor.
     */
    displayNegative?: boolean;
    /**
     * (Highcharts) Flag to determine if nodes are draggable or not. Available
     * for graph with useSimulation set to true only.
     */
    draggable?: boolean;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) Options for layout algorithm when simulation is enabled.
     * Inside there are options to change the speed, padding, initial bubbles
     * positions and more.
     */
    layoutAlgorithm?: PlotPackedbubbleLayoutAlgorithmOptions;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highstock) Maximum bubble size. Bubbles will automatically
     * size between the `minSize` and `maxSize` to reflect the value of each
     * bubble. Can be either pixels (when no unit is given), or a percentage of
     * the smallest one of the plot width and height, divided by the square root
     * of total number of points.
     */
    maxSize?: (number|string);
    /**
     * (Highcharts, Highstock) Minimum bubble size. Bubbles will automatically
     * size between the `minSize` and `maxSize` to reflect the value of each
     * bubble. Can be either pixels (when no unit is given), or a percentage of
     * the smallest one of the plot width and height, divided by the square root
     * of total number of points.
     */
    minSize?: (number|string);
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) When a point's Z value is below the zThreshold setting, this
     * color is used.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Series options for parent nodes.
     */
    parentNode?: PlotPackedbubbleParentNodeOptions;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) Whether the bubble's value should be represented by the area
     * or the width of the bubble. The default, `area`, corresponds best to the
     * human perception of the size of each bubble.
     */
    sizeBy?: string;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) When this is true, the series will not cause the Y axis to
     * cross the zero plane (or threshold option) unless the data actually
     * crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) An option is giving a possibility to choose between using
     * simulation for calculating bubble positions. These reflects in both
     * animation and final position of bubbles. Simulation is also adding
     * options to the series graph based on used layout. In case of big data
     * sets, with any performance issues, it is possible to disable animation
     * and pack bubble in a simple circular way.
     */
    useSimulation?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
    /**
     * (Highcharts) When displayNegative is `false`, bubbles with lower Z values
     * are skipped. When `displayNegative` is `true` and a negativeColor is
     * given, points with lower Z is colored.
     */
    zThreshold?: number;
}
/**
 * (Highcharts) Series options for parent nodes.
 */
export interface PlotPackedbubbleParentNodeOptions {
    /**
     * (Highcharts) Allow this series' parent nodes to be selected by clicking
     * on the graph.
     */
    allowPointSelect?: boolean;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotParetoAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotParetoDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotParetoDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotParetoDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotParetoDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts) A pareto diagram is a type of chart that contains both bars and
 * a line graph, where individual values are represented in descending order by
 * bars, and the cumulative total is represented by the line.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pareto` series are defined in plotOptions.pareto.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotParetoOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotParetoAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotParetoDataLabelsOptions|Array<PlotParetoDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotParetoDataSortingOptions);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Higher zIndex than column series to draw line above shapes.
     */
    zIndex?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPcAnimationOptions {
    defer?: number;
}
export interface PlotPcBottomLineOptions {
    styles?: PlotPcBottomLineStylesOptions;
}
export interface PlotPcBottomLineStylesOptions {
    /**
     * (Highstock) Color of the bottom line. If not set, it's inherited from
     * plotOptions.pc.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPcDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotPcDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotPcDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotPcDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Price channel (PC). This series requires the `linkedTo` option to
 * be set and should be loaded after the `stock/indicators/indicators.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pc` series are defined in plotOptions.pc.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPcOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPcAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    bottomLine?: PlotPcBottomLineOptions;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotPcDataLabelsOptions|Array<PlotPcDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotPcDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotPcParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    topLine?: PlotPcTopLineOptions;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotPcParamsOptions {
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
export interface PlotPcTopLineOptions {
    styles?: PlotPcTopLineStylesOptions;
}
export interface PlotPcTopLineStylesOptions {
    /**
     * (Highstock) Color of the top line. If not set, it's inherited from
     * plotOptions.pc.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPieAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPieDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) A pie chart is a circular graphic which is divided into slices
 * to illustrate numerical proportion.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pie` series are defined in plotOptions.pie.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPieOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPieAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The color of the border surrounding each slice. When `null`,
     * the border takes the same color as the slice fill. This can be used
     * together with a `borderWidth` to fill drawing gaps created by
     * antialiazing artefacts in borderless pies.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the border surrounding each slice.
     *
     * When setting the border width to 0, there may be small gaps between the
     * slices due to SVG antialiasing artefacts. To work around this, keep the
     * border width at 0.5 or 1, but set the `borderColor` to `null` instead.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The center of the pie chart relative to the plot area. Can
     * be percentages or pixel values. The default behaviour (as of 3.0) is to
     * center the pie so that all slices and data labels are within the plot
     * area. As a consequence, the pie may actually jump around in a chart with
     * dynamic values, as the data labels move. In that case, the center should
     * be explicitly set, for example to `["50%", "50%"]`.
     */
    center?: [(number|string|null), (number|string|null)];
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The color of the pie series. A pie series is represented as
     * an empty circle if the total sum of its values is 0. Use this property to
     * define the color of its border.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts) A series specific or series type specific color set to use
     * instead of the global colors.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (SeriesPieDataLabelsOptionsObject|Array<SeriesPieDataLabelsOptionsObject>);
    /**
     * (Highcharts) The thickness of a 3D pie.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) The end angle of the pie in degrees where 0 is top and 90 is
     * right. Defaults to `startAngle` plus 360.
     */
    endAngle?: number;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) If the total sum of the pie's values is 0, the series is
     * represented as an empty circle . The `fillColor` option defines the color
     * of that circle. Use pie.borderWidth to set the border thickness.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) Equivalent to chart.ignoreHiddenSeries, this option tells
     * whether the series shall be redrawn as if the hidden point were `null`.
     *
     * The default value changed from `false` to `true` with Highcharts 3.0.
     */
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts) The size of the inner diameter for the pie. A size greater
     * than 0 renders a donut chart. Can be a percentage or pixel value.
     * Percentages are relative to the pie size. Pixel values are given as
     * integers.
     *
     * Note: in Highcharts < 4.1.2, the percentage was relative to the plot
     * area, not the pie size.
     */
    innerSize?: (number|string);
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) The minimum size for a pie in response to auto margins. The
     * pie will try to shrink to make room for data labels in side the plot
     * area, but only to this size.
     */
    minSize?: (number|string);
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Since 2.1, pies are not shown in the legend by default.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) The diameter of the pie relative to the plot area. Can be a
     * percentage or pixel value. Pixel values are given as integers. The
     * default behaviour (as of 3.0) is to scale to the plot area and give room
     * for data labels within the plot area. slicedOffset is also included in
     * the default size calculation. As a consequence, the size of the pie may
     * vary when points are updated and data labels more around. In that case it
     * is best to set a fixed value, for example `"75%"`.
     */
    size?: (number|string|null);
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) If a point is sliced, moved out from the center, how many
     * pixels should it be moved?.
     */
    slicedOffset?: number;
    /**
     * (Highcharts) The start angle of the pie slices in degrees where 0 is top
     * and 90 right.
     */
    startAngle?: number;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip. When `stickyTracking` is
     * false and `tooltip.shared` is false, the tooltip will be hidden when
     * moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPivotpointsAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPivotpointsDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotPivotpointsDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotPivotpointsDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotPivotpointsDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Pivot points indicator. This series requires the `linkedTo`
 * option to be set and should be loaded after `stock/indicators/indicators.js`
 * file.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pivotpoints` series are defined in
 * plotOptions.pivotpoints.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPivotpointsOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPivotpointsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotPivotpointsDataLabelsOptions|Array<PlotPivotpointsDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotPivotpointsDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotPivotpointsParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotPivotpointsParamsOptions {
    /**
     * (Highstock) Algorithm used to calculate ressistance and support lines
     * based on pivot points. Implemented algorithms: `'standard'`,
     * `'fibonacci'` and `'camarilla'`
     */
    algorithm?: string;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPolygonAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPolygonDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotPolygonDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotPolygonDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotPolygonDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotPolygonDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A polygon series can be used to draw any freeform
 * shape in the cartesian coordinate system. A fill is applied with the `color`
 * option, and stroke is applied through `lineWidth` and `lineColor` options.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `polygon` series are defined in plotOptions.polygon.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPolygonOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPolygonAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotPolygonDataLabelsOptions|Array<PlotPolygonDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotPolygonDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    trackByArea?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPpoAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPpoDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotPpoDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotPpoDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotPpoDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Percentage Price Oscillator. This series requires the `linkedTo`
 * option to be set and should be loaded after the
 * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ppo` series are defined in plotOptions.ppo.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPpoOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPpoAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotPpoDataLabelsOptions|Array<PlotPpoDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotPpoDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of Percentage Price Oscillator
     * series points.
     */
    params?: PlotPpoParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of Percentage Price Oscillator
 * series points.
 */
export interface PlotPpoParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     *
     * By default index value used to be set to 0. Since Highstock 7 by default
     * index is set to 3 which means that the ema indicator will be calculated
     * using Close values.
     */
    index?: number;
    /**
     * (Highstock) Periods for Percentage Price Oscillator calculations.
     */
    periods?: Array<number>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPriceenvelopesAnimationOptions {
    defer?: number;
}
/**
 * (Highstock) Bottom line options.
 */
export interface PlotPriceenvelopesBottomLineOptions {
    styles?: PlotPriceenvelopesBottomLineStylesOptions;
}
export interface PlotPriceenvelopesBottomLineStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * plotOptions.priceenvelopes.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPriceenvelopesDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotPriceenvelopesDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotPriceenvelopesDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotPriceenvelopesDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Price envelopes indicator based on SMA calculations. This series
 * requires the `linkedTo` option to be set and should be loaded after the
 * `stock/indicators/indicators.js` file.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `priceenvelopes` series are defined in
 * plotOptions.priceenvelopes.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPriceenvelopesOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPriceenvelopesAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) Bottom line options.
     */
    bottomLine?: PlotPriceenvelopesBottomLineOptions;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotPriceenvelopesDataLabelsOptions|Array<PlotPriceenvelopesDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotPriceenvelopesDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotPriceenvelopesParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) Top line options.
     */
    topLine?: PlotPriceenvelopesTopLineOptions;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotPriceenvelopesParamsOptions {
    /**
     * (Highstock) Percentage below the moving average that should be displayed.
     * 0.1 means 90%. Relative to the calculated value.
     */
    bottomBand?: number;
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) Percentage above the moving average that should be displayed.
     * 0.1 means 110%. Relative to the calculated value.
     */
    topBand?: number;
}
/**
 * (Highstock) Top line options.
 */
export interface PlotPriceenvelopesTopLineOptions {
    styles?: PlotPriceenvelopesTopLineStylesOptions;
}
export interface PlotPriceenvelopesTopLineStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * plotOptions.priceenvelopes.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPsarAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPsarDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotPsarDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotPsarDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotPsarDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Parabolic SAR. This series requires `linkedTo` option to be set
 * and should be loaded after `stock/indicators/indicators.js` file.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `psar` series are defined in plotOptions.psar.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPsarOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPsarAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotPsarDataLabelsOptions|Array<PlotPsarDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotPsarDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotPsarParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotPsarParamsOptions {
    /**
     * (Highstock) Number of maximum decimals that are used in PSAR
     * calculations.
     */
    decimals?: number;
    /**
     * (Highstock) Acceleration factor increases by increment each time the
     * extreme point makes a new high.
     */
    increment?: number;
    /**
     * (Highstock) Index from which PSAR is starting calculation
     */
    index?: number;
    /**
     * (Highstock) The initial value for acceleration factor. Acceleration
     * factor is starting with this value and increases by specified increment
     * each time the extreme point makes a new high. AF can reach a maximum of
     * maxAccelerationFactor, no matter how long the uptrend extends.
     */
    initialAccelerationFactor?: number;
    /**
     * (Highstock) The Maximum value for acceleration factor. AF can reach a
     * maximum of maxAccelerationFactor, no matter how long the uptrend extends.
     */
    maxAccelerationFactor?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotPyramid3dAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPyramid3dDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotPyramid3dDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotPyramid3dDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotPyramid3dDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A pyramid3d is a 3d version of pyramid series type. Pyramid
 * charts are a type of chart often used to visualize stages in a sales project,
 * where the top are the initial stages with the most clients.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pyramid3d` series are defined in plotOptions.pyramid3d.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPyramid3dOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotPyramid3dAnimationOptions);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotPyramid3dDataLabelsOptions|Array<PlotPyramid3dDataLabelsOptions>);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) By deafult sides fill is set to a gradient through this
     * option being set to `true`. Set to `false` to get solid color for the
     * sides.
     */
    gradientForSides?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) The height of the series. If it is a number it defines the
     * pixel height, if it is a percentage string it is the percentage of the
     * plot area height.
     */
    height?: (number|string);
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    neckHeight?: number;
    neckWidth?: number;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) A reversed pyramid3d is funnel3d, but the latter supports
     * neck related options: neckHeight and neckWidth
     */
    reversed?: boolean;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highcharts) The max width of the series compared to the width of the
     * plot area, or the pixel width if it is a number.
     */
    width?: (number|string);
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Initial animation is by default disabled for the funnel chart.
 */
export interface PlotPyramidAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotPyramidDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) A pyramid series is a special type of funnel, without neck and
 * reversed by default.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pyramid` series are defined in plotOptions.pyramid.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotPyramidOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Initial animation is by default disabled for the funnel
     * chart.
     */
    animation?: (boolean|PlotPyramidAnimationOptions);
    /**
     * (Highcharts) The color of the border surrounding each slice. When `null`,
     * the border takes the same color as the slice fill. This can be used
     * together with a `borderWidth` to fill drawing gaps created by
     * antialiazing artefacts in borderless pies.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the border surrounding each slice.
     *
     * When setting the border width to 0, there may be small gaps between the
     * slices due to SVG antialiasing artefacts. To work around this, keep the
     * border width at 0.5 or 1, but set the `borderColor` to `null` instead.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The center of the series. By default, it is centered in the
     * middle of the plot area, so it fills the plot area height.
     */
    center?: Array<(number|string)>;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The color of the pie series. A pie series is represented as
     * an empty circle if the total sum of its values is 0. Use this property to
     * define the color of its border.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts) A series specific or series type specific color set to use
     * instead of the global colors.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (SeriesPieDataLabelsOptionsObject|Array<SeriesPieDataLabelsOptionsObject>);
    /**
     * (Highcharts) The thickness of a 3D pie.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) The end angle of the pie in degrees where 0 is top and 90 is
     * right. Defaults to `startAngle` plus 360.
     */
    endAngle?: number;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) If the total sum of the pie's values is 0, the series is
     * represented as an empty circle . The `fillColor` option defines the color
     * of that circle. Use pie.borderWidth to set the border thickness.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) The height of the funnel or pyramid. If it is a number it
     * defines the pixel height, if it is a percentage string it is the
     * percentage of the plot area height.
     */
    height?: (number|string);
    /**
     * (Highcharts) Equivalent to chart.ignoreHiddenSeries, this option tells
     * whether the series shall be redrawn as if the hidden point were `null`.
     *
     * The default value changed from `false` to `true` with Highcharts 3.0.
     */
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) The minimum size for a pie in response to auto margins. The
     * pie will try to shrink to make room for data labels in side the plot
     * area, but only to this size.
     */
    minSize?: (number|string);
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The pyramid neck width is zero by default, as opposed to the
     * funnel, which shares the same layout logic.
     */
    neckHeight?: string;
    /**
     * (Highcharts) The pyramid neck width is zero by default, as opposed to the
     * funnel, which shares the same layout logic.
     */
    neckWidth?: string;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) The pyramid is reversed by default, as opposed to the
     * funnel, which shares the layout engine, and is not reversed.
     */
    reversed?: boolean;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Since 2.1, pies are not shown in the legend by default.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) If a point is sliced, moved out from the center, how many
     * pixels should it be moved?.
     */
    slicedOffset?: number;
    /**
     * (Highcharts) The start angle of the pie slices in degrees where 0 is top
     * and 90 right.
     */
    startAngle?: number;
    /**
     * (Highcharts) Options for the series states.
     */
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip. When `stickyTracking` is
     * false and `tooltip.shared` is false, the tooltip will be hidden when
     * moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highcharts) The width of the funnel compared to the width of the plot
     * area, or the pixel width if it is a number.
     */
    width?: (number|string);
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotRocAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotRocDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotRocDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotRocDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotRocDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Rate of change indicator (ROC). The indicator value for each
 * point is defined as:
 *
 * `(C - Cn) / Cn * 100`
 *
 * where: `C` is the close value of the point of the same x in the linked series
 * and `Cn` is the close value of the point `n` periods ago. `n` is set through
 * period.
 *
 * This series requires `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `roc` series are defined in plotOptions.roc.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotRocOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotRocAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotRocDataLabelsOptions|Array<PlotRocDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotRocDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotRocParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotRocParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotRsiAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotRsiDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotRsiDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotRsiDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotRsiDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Relative strength index (RSI) technical indicator. This series
 * requires the `linkedTo` option to be set and should be loaded after the
 * `stock/indicators/indicators.js` file.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `rsi` series are defined in plotOptions.rsi.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotRsiOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotRsiAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotRsiDataLabelsOptions|Array<PlotRsiDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotRsiDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotRsiParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotRsiParamsOptions {
    /**
     * (Highstock) Number of maximum decimals that are used in RSI calculations.
     */
    decimals?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotSankeyAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSankeyDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSankeyLevelsDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Set options on specific levels. Takes precedence over series
 * options, but not node and link options.
 */
export interface PlotSankeyLevelsOptions {
    /**
     * (Highcharts) Can set `borderColor` on all nodes which lay on the same
     * level.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts) Can set `borderWidth` on all nodes which lay on the same
     * level.
     */
    borderWidth?: number;
    /**
     * (Highcharts) Can set `color` on all nodes which lay on the same level.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Can set `colorByPoint` on all nodes which lay on the same
     * level.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Can set `dataLabels` on all
     * points which lay on the same level.
     */
    dataLabels?: (SeriesSankeyDataLabelsOptionsObject|Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) Decides which level takes effect from the options set in the
     * levels object.
     */
    level?: number;
    /**
     * (Highcharts) Can set `linkOpacity` on all points which lay on the same
     * level.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) Can set `states` on all nodes and points which lay on the
     * same level.
     */
    states?: SeriesStatesOptionsObject;
}
/**
 * (Highcharts) A sankey diagram is a type of flow diagram, in which the width
 * of the link between two nodes is shown proportionally to the flow quantity.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `sankey` series are defined in plotOptions.sankey.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotSankeyOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotSankeyAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) Higher numbers makes the links in a sankey diagram or
     * dependency wheelrender more curved. A `curveFactor` of 0 makes the lines
     * straight.
     */
    curveFactor?: number;
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the data labels
     * appearing on top of the nodes and links. For sankey charts, data labels
     * are visible for the nodes by default, but hidden for links. This is
     * controlled by modifying the `nodeFormat`, and the `format` that applies
     * to links and is an empty string by default.
     */
    dataLabels?: (SeriesSankeyDataLabelsOptionsObject|Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) Set options on specific levels. Takes precedence over series
     * options, but not node and link options.
     */
    levels?: Array<PlotSankeyLevelsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Opacity for the links between nodes in the sankey diagram.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) The minimal width for a line of a sankey. By default, 0
     * values are not shown.
     */
    minLinkWidth?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The padding between nodes in a sankey diagram or dependency
     * wheel, in pixels.
     *
     * If the number of nodes is so great that it is possible to lay them out
     * within the plot area with the given `nodePadding`, they will be rendered
     * with a smaller padding as a strategy to avoid overflow.
     */
    nodePadding?: number;
    /**
     * (Highcharts) The pixel width of each node in a sankey diagram or
     * dependency wheel, or the height in case the chart is inverted.
     */
    nodeWidth?: number;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotScatter3dAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotScatter3dDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotScatter3dDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotScatter3dDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotScatter3dDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Apply a jitter effect for the rendered markers. When
 * plotting discrete values, a little random noise may help telling the points
 * apart. The jitter setting applies a random displacement of up to `n` axis
 * units in either direction. So for example on a horizontal X axis, setting the
 * `jitter.x` to 0.24 will render the point in a random position between 0.24
 * units to the left and 0.24 units to the right of the true axis position. On a
 * category axis, setting it to 0.5 will fill up the bin and make the data
 * appear continuous.
 *
 * When rendered on top of a box plot or a column series, a jitter value of 0.24
 * will correspond to the underlying series' default groupPadding and
 * pointPadding settings.
 */
export interface PlotScatter3dJitterOptions {
    /**
     * (Highcharts, Highstock) The maximal X offset for the random jitter
     * effect.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) The maximal Y offset for the random jitter
     * effect.
     */
    y?: number;
}
/**
 * (Highcharts) A 3D scatter plot uses x, y and z coordinates to display values
 * for three variables for a set of data.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `scatter3d` series are defined in plotOptions.scatter3d.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotScatter3dOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotScatter3dAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotScatter3dDataLabelsOptions|Array<PlotScatter3dDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotScatter3dDataSortingOptions);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock) Apply a jitter effect for the rendered markers.
     * When plotting discrete values, a little random noise may help telling the
     * points apart. The jitter setting applies a random displacement of up to
     * `n` axis units in either direction. So for example on a horizontal X
     * axis, setting the `jitter.x` to 0.24 will render the point in a random
     * position between 0.24 units to the left and 0.24 units to the right of
     * the true axis position. On a category axis, setting it to 0.5 will fill
     * up the bin and make the data appear continuous.
     *
     * When rendered on top of a box plot or a column series, a jitter value of
     * 0.24 will correspond to the underlying series' default groupPadding and
     * pointPadding settings.
     */
    jitter?: PlotScatter3dJitterOptions;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotScatterAnimationOptions {
    defer?: number;
}
export interface PlotScatterClusterEventsOptions {
    /**
     * (Highcharts, Highmaps) Fires when the cluster point is clicked and
     * `drillToCluster` is enabled. One parameter, `event`, is passed to the
     * function. The default action is to zoom to the cluster points range. This
     * can be prevented by calling `event.preventDefault()`.
     */
    drillToCluster?: MarkerClusterDrillCallbackFunction;
}
/**
 * (Highcharts, Highmaps) Options for layout algorithm. Inside there are options
 * to change the type of the algorithm, gridSize, distance or iterations.
 */
export interface PlotScatterClusterLayoutAlgorithmOptions {
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `distance` is a
     * maximum distance between point and cluster center so that this point will
     * be inside the cluster. The distance is either a number defining pixels or
     * a percentage defining a percentage of the plot area width.
     */
    distance?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to the `grid`, `gridSize` is a
     * size of a grid square element either as a number defining pixels, or a
     * percentage defining a percentage of the plot area width.
     */
    gridSize?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `iterations` are
     * the number of iterations that this algorithm will be repeated to find
     * clusters positions.
     */
    iterations?: number;
    /**
     * (Highcharts, Highmaps) When `type` is set to `undefined` and there are
     * more visible points than the kmeansThreshold the `grid` algorithm is used
     * to find clusters, otherwise `kmeans`. It ensures good performance on
     * large datasets and better clusters arrangement after the zoom.
     */
    kmeansThreshold?: number;
    /**
     * (Highcharts, Highmaps) Type of the algorithm used to combine points into
     * a cluster. There are three available algorithms:
     *
     * 1) `grid` - grid-based clustering technique. Points are assigned to
     * squares of set size depending on their position on the plot area. Points
     * inside the grid square are combined into a cluster. The grid size can be
     * controlled by `gridSize` property (grid size changes at certain zoom
     * levels).
     *
     * 2) `kmeans` - based on K-Means clustering technique. In the first step,
     * points are divided using the grid method (distance property is a grid
     * size) to find the initial amount of clusters. Next, each point is
     * classified by computing the distance between each cluster center and that
     * point. When the closest cluster distance is lower than distance property
     * set by a user the point is added to this cluster otherwise is classified
     * as `noise`. The algorithm is repeated until each cluster center not
     * change its previous position more than one pixel. This technique is more
     * accurate but also more time consuming than the `grid` algorithm,
     * especially for big datasets.
     *
     * 3) `optimizedKmeans` - based on K-Means clustering technique. This
     * algorithm uses k-means algorithm only on the chart initialization or when
     * chart extremes have greater range than on initialization. When a chart is
     * redrawn the algorithm checks only clustered points distance from the
     * cluster center and rebuild it when the point is spaced enough to be
     * outside the cluster. It provides performance improvement and more stable
     * clusters position yet can be used rather on small and sparse datasets.
     *
     * By default, the algorithm depends on visible quantity of points and
     * `kmeansThreshold`. When there are more visible points than the
     * `kmeansThreshold` the `grid` algorithm is used, otherwise `kmeans`.
     *
     * The custom clustering algorithm can be added by assigning a callback
     * function as the type property. This function takes an array of
     * `processedXData`, `processedYData`, `processedXData` indexes and
     * `layoutAlgorithm` options as arguments and should return an object with
     * grouped data.
     *
     * The algorithm should return an object like that: (see online
     * documentation for example)
     *
     * `clusterId` (example above - unique id of a cluster or noise) is an array
     * of points belonging to a cluster. If the array has only one point or
     * fewer points than set in `cluster.minimumClusterSize` it won't be
     * combined into a cluster.
     */
    type?: (string|Function);
}
/**
 * (Highcharts, Highmaps) Options for marker clusters, the concept of sampling
 * the data values into larger blocks in order to ease readability and increase
 * performance of the JavaScript charts.
 *
 * Note: marker clusters module is not working with `boost` and
 * `draggable-points` modules.
 *
 * The marker clusters feature requires the marker-clusters.js file to be
 * loaded, found in the modules directory of the download package, or online at
 * code.highcharts.com/modules/marker-clusters.js.
 */
export interface PlotScatterClusterOptions {
    /**
     * (Highcharts, Highmaps) When set to `false` prevent cluster overlapping -
     * this option works only when `layoutAlgorithm.type = "grid"`.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker animation.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highmaps) Options for the cluster data labels.
     */
    dataLabels?: DataLabelsOptions;
    /**
     * (Highcharts, Highmaps) Zoom the plot area to the cluster points range
     * when a cluster is clicked.
     */
    drillToCluster?: boolean;
    /**
     * (Highcharts, Highmaps) Whether to enable the marker-clusters module.
     */
    enabled?: boolean;
    events?: PlotScatterClusterEventsOptions;
    /**
     * (Highcharts, Highmaps) Options for layout algorithm. Inside there are
     * options to change the type of the algorithm, gridSize, distance or
     * iterations.
     */
    layoutAlgorithm?: PlotScatterClusterLayoutAlgorithmOptions;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The minimum amount of points to be combined into a
     * cluster. This value has to be greater or equal to 2.
     */
    minimumClusterSize?: number;
    states?: PlotScatterClusterStatesOptions;
    /**
     * (Highcharts, Highmaps) An array defining zones within marker clusters.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-cluster-zone-{n}` class, or custom classed from the
     * `className` option.
     */
    zones?: Array<PlotScatterClusterZonesOptions>;
}
export interface PlotScatterClusterStatesHoverOptions {
    /**
     * (Highcharts, Highmaps) The fill color of the cluster marker in hover
     * state. When `undefined`, the series' or point's fillColor for normal
     * state is used.
     */
    fillColor?: ColorType;
}
export interface PlotScatterClusterStatesOptions {
    hover?: PlotScatterClusterStatesHoverOptions;
}
/**
 * (Highcharts, Highmaps) An array defining zones within marker clusters.
 *
 * In styled mode, the color zones are styled with the
 * `.highcharts-cluster-zone-{n}` class, or custom classed from the `className`
 * option.
 */
export interface PlotScatterClusterZonesOptions {
    /**
     * (Highcharts, Highmaps) Styled mode only. A custom class name for the
     * zone.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The value where the zone starts.
     */
    from?: number;
    /**
     * (Highcharts, Highmaps) Settings for the cluster marker belonging to the
     * zone.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The value where the zone ends.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotScatterDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotScatterDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotScatterDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotScatterDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotScatterDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Apply a jitter effect for the rendered markers. When
 * plotting discrete values, a little random noise may help telling the points
 * apart. The jitter setting applies a random displacement of up to `n` axis
 * units in either direction. So for example on a horizontal X axis, setting the
 * `jitter.x` to 0.24 will render the point in a random position between 0.24
 * units to the left and 0.24 units to the right of the true axis position. On a
 * category axis, setting it to 0.5 will fill up the bin and make the data
 * appear continuous.
 *
 * When rendered on top of a box plot or a column series, a jitter value of 0.24
 * will correspond to the underlying series' default groupPadding and
 * pointPadding settings.
 */
export interface PlotScatterJitterOptions {
    /**
     * (Highcharts, Highstock) The maximal X offset for the random jitter
     * effect.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) The maximal Y offset for the random jitter
     * effect.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock) A scatter plot uses cartesian coordinates to display
 * values for two variables for a set of data.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `scatter` series are defined in plotOptions.scatter.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotScatterOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotScatterAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highstock) Set the point threshold for when a series should
     * enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highmaps) Options for marker clusters, the concept of
     * sampling the data values into larger blocks in order to ease readability
     * and increase performance of the JavaScript charts.
     *
     * Note: marker clusters module is not working with `boost` and
     * `draggable-points` modules.
     *
     * The marker clusters feature requires the marker-clusters.js file to be
     * loaded, found in the modules directory of the download package, or online
     * at code.highcharts.com/modules/marker-clusters.js.
     */
    cluster?: PlotScatterClusterOptions;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotScatterDataLabelsOptions|Array<PlotScatterDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotScatterDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock) Apply a jitter effect for the rendered markers.
     * When plotting discrete values, a little random noise may help telling the
     * points apart. The jitter setting applies a random displacement of up to
     * `n` axis units in either direction. So for example on a horizontal X
     * axis, setting the `jitter.x` to 0.24 will render the point in a random
     * position between 0.24 units to the left and 0.24 units to the right of
     * the true axis position. On a category axis, setting it to 0.5 will fill
     * up the bin and make the data appear continuous.
     *
     * When rendered on top of a box plot or a column series, a jitter value of
     * 0.24 will correspond to the underlying series' default groupPadding and
     * pointPadding settings.
     */
    jitter?: PlotScatterJitterOptions;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation of the series itself. For other animations, see
 * chart.animation and the animation parameter under the API methods. The
 * following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotSeriesAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSeriesDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotSeriesDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotSeriesDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotSeriesDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Style options for the guide box. The
 * guide box has one state by default, the `default` state.
 */
export interface PlotSeriesDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Style options for the guide box
     * default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) General options for all series
 * types.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `line` series are defined in plotOptions.line.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotSeriesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for a
     * series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Allow this series' points to be
     * selected by clicking on the graphic (columns, point markers, pie slices,
     * map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed. The animation can also be set as a
     * configuration object. Please note that this option only applies to the
     * initial animation of the series itself. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotSeriesAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For some series, there is a
     * limit that shuts down initial animation by default when the total number
     * of points in the chart is too high. For example, for a column chart and
     * its derivatives, animation does not run if there is more than 250 points
     * totally. To disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Sets the color blending in the
     * boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the point threshold for when
     * a series should enter boost mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An additional class name to
     * apply to the series' graphical elements. This option does not replace
     * default class names of the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Disable this option to allow
     * series rendering in the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The main color of the series. In
     * line type series it applies to the line and the point markers unless
     * otherwise specified. In bar type series it applies to the bars unless a
     * color is specified per point. The default value is pulled from the
     * `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styled mode only. A specific
     * color index to use for the series, so its graphic representations are
     * given the class name `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) You can set the cursor to
     * "pointer" if you have click events attached to the series, to signal to
     * the user that the points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A reserved subspace to store
     * options and values for customized functionality. Here you can add
     * additional data for your own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Name of the dash style to use
     * for the graph, or for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotSeriesDataLabelsOptions|Array<PlotSeriesDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotSeriesDataSortingOptions);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A description of the series to
     * add to the screen reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The draggable-points module
     * allows points to be moved around or modified in the chart. In addition to
     * the options mentioned under the `dragDrop` API structure, the module
     * fires three events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the mouse
     * tracking for a specific series. This includes point tooltips and click
     * events on graphs and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) General event handlers for the
     * series items. These event hooks can also be attached to the series at run
     * time using the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Determines whether the series
     * should look for the nearest point in both dimensions or just the
     * x-dimension when hovering the series. Defaults to `'xy'` for scatter
     * series and `'x'` for most other series. If the data has duplicate
     * x-values, it is recommended to set this to `'xy'` to allow hovering over
     * all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When set to `false` will prevent
     * the series data from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array specifying which option
     * maps to which key in the data point array. This makes it convenient to
     * work with unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The line cap used for line ends and line joins on
     * the graph.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the point markers of
     * line-like series. Properties like `fillColor`, `lineColor` and
     * `lineWidth` define the visual appearance of the markers. Other series
     * types, like column series, don't have markers, but have visual options on
     * the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color for the parts of the
     * graph or points that are below the threshold. Note that `zones` takes
     * precedence over the negative color. Using `negativeColor` is equivalent
     * to applying a zone with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Opacity of a series parts: line,
     * fill (e.g. area) and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Properties for each single
     * point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Same as
     * accessibility.pointDescriptionFormatter, but for an individual series.
     * Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to select the series
     * initially. If `showCheckbox` is true, the checkbox next to the series
     * name in the legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to apply a drop shadow
     * to the graph line. Since 2.3 the shadow can be an object configuration
     * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If true, a checkbox is displayed
     * next to the legend item to allow selecting the series. The state of the
     * checkbox is determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to display this
     * particular series or series type in the legend. Standalone series are
     * shown in legend by default, and linked series are not. Since v7.2.0 it is
     * possible to show series that use colorAxis by setting this option to
     * `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If set to `true`, the
     * accessibility module will skip past the points in this series for
     * keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Sticky tracking of mouse events.
     * When true, the `mouseOut` event on a series isn't triggered until the
     * mouse moves over another series, or out of the plot area. When false, the
     * `mouseOut` event on a series is triggered when the mouse leaves the area
     * around the series' graph or markers. This also implies the tooltip when
     * not shared. When `stickyTracking` is false and `tooltip.shared` is false,
     * the tooltip will be hidden when moving the mouse between series. Defaults
     * to true for line and area type series, but to false for columns, pies
     * etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A configuration object for the
     * tooltip rendering of each single series. Properties are inherited from
     * tooltip, but only the following properties can be defined on a series
     * level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Set the initial visibility of
     * the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Properties for each single point.
 */
export interface PlotSeriesPointOptions {
    /**
     * (Highstock) Events for each single point.
     */
    events?: PointEventsOptionsObject;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotSlowstochasticAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSlowstochasticDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotSlowstochasticDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotSlowstochasticDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotSlowstochasticDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Slow Stochastic oscillator. This series requires the `linkedTo`
 * option to be set and should be loaded after `stock/indicators/indicators.js`
 * and `stock/indicators/stochastic.js` files.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `slowstochastic` series are defined in
 * plotOptions.slowstochastic.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotSlowstochasticOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotSlowstochasticAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotSlowstochasticDataLabelsOptions|Array<PlotSlowstochasticDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotSlowstochasticDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotSlowstochasticParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highstock) Smoothed line options.
     */
    smoothedLine?: PlotSlowstochasticSmoothedLineOptions;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotSlowstochasticParamsOptions {
    /**
     * (Highstock) Periods for Slow Stochastic oscillator: [%K, %D, SMA(%D)].
     */
    periods?: [number, number, number];
}
/**
 * (Highstock) Smoothed line options.
 */
export interface PlotSlowstochasticSmoothedLineOptions {
    /**
     * (Highstock) Styles for a smoothed line.
     */
    styles?: PlotSlowstochasticSmoothedLineStylesOptions;
}
/**
 * (Highstock) Styles for a smoothed line.
 */
export interface PlotSlowstochasticSmoothedLineStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * plotOptions.stochastic.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotSmaAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSmaDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotSmaDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotSmaDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotSmaDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Simple moving average indicator (SMA). This series requires
 * `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `sma` series are defined in plotOptions.sma.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotSmaOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotSmaAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotSmaDataLabelsOptions|Array<PlotSmaDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotSmaDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotSmaParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotSmaParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotSolidgaugeAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSolidgaugeDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Data labels for the gauge. For gauges, the data labels are
 * enabled by default and shown in a bordered box below the point.
 */
export interface PlotSolidgaugeDataLabelsOptions {
    /**
     * (Highcharts) The alignment of the data label compared to the point. If
     * `right`, the right side of the label should be touching the point. For
     * points with an extent, like columns, the alignments also dictates how to
     * align it inside the box, as given with the inside option. Can be one of
     * `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts) Whether to allow data labels to overlap. To make the labels
     * less sensitive for overlapping, the dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed for the `dataLabels`. The animation can also be set as a
     * configuration object. Please note that this option only applies to the
     * initial animation. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotSolidgaugeDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The background color or gradient for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The border color for the data label. Defaults to
     * `undefined`.
     */
    borderColor?: string;
    /**
     * (Highcharts) The border radius in pixels for the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts) The border width in pixels for the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts) A class name for the data label. Particularly in styled
     * mode, this can be used to give each series' or point's data label unique
     * styling. In addition to this option, a default color class name is added
     * so that we can give the labels a contrast text shadow.
     */
    className?: string;
    /**
     * (Highcharts) The text color for the data labels. Defaults to `undefined`.
     * For certain series types, like column or map, the data labels can be
     * drawn inside the points. In this case the data label will be drawn with
     * maximum contrast by default. Additionally, it will be given a
     * `text-outline` style with the opposite color, to further increase the
     * contrast. This can be overridden by setting the `text-outline` style to
     * `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Whether to hide data labels that are outside the plot area.
     * By default, the data label is moved inside the plot area according to the
     * overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts) Enable or disable the data labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts) A declarative filter to control of which data labels to
     * display. The declarative filter is designed for use when callback
     * functions are not available, like when the chart options require a pure
     * JSON structure or for use with graphical editors. For programmatic
     * control, use the `formatter` instead, and return `undefined` to disable a
     * single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts) A format string for the data label. Available variables are
     * the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts) Callback JavaScript function to format the data label. Note
     * that if a `format` is defined, the format takes precedence and the
     * formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts) For points with an extent, like columns or map areas,
     * whether to align the data label inside the box or to the actual value
     * point. Defaults to `false` in most cases, `true` in stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts) Format for points with the value of null. Works analogously
     * to format. `nullFormat` can be applied only to series which support
     * displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts) Callback JavaScript function that defines formatting for
     * points with the value of null. Works analogously to formatter.
     * `nullPointFormatter` can be applied only to series which support
     * displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts) How to handle data labels that flow outside the plot area.
     * The default is `"justify"`, which aligns them inside the plot area. For
     * columns and bars, this means it will be moved inside the bar. To display
     * data labels outside the plot area, set `crop` to `false` and `overflow`
     * to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts) When either the `borderWidth` or the `backgroundColor` is
     * set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts) Aligns data labels relative to points. If `center` alignment
     * is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts) Text rotation in degrees. Note that due to a more complex
     * structure, backgrounds, borders and padding will be lost on a rotated
     * data label.
     */
    rotation?: number;
    /**
     * (Highcharts) The shadow of the box. Works best with `borderWidth` or
     * `backgroundColor`. Since 2.3 the shadow can be an object configuration
     * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts) Styles for the label. The default `color` setting is
     * `"contrast"`, which is a pseudo color that Highcharts picks up and
     * applies the maximum contrast to the underlying point item, for example
     * the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts) Options for a label text which should follow marker's shape.
     * Border and background are disabled for a label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts) The vertical alignment of a data label. Can be one of `top`,
     * `middle` or `bottom`. The default value depends on the data, for instance
     * in a column chart, the label is above positive values and below negative
     * values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts) The x position offset of the label relative to the point in
     * pixels.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of the label relative to the point in
     * pixels.
     */
    y?: number;
    /**
     * (Highcharts) The Z index of the data labels. The default Z index puts it
     * above the series. Use a Z index of 2 to display it behind the series.
     */
    z?: number;
    zIndex?: number;
}
/**
 * (Highcharts) A solid gauge is a circular gauge where the value is indicated
 * by a filled arc, and the color of the arc may variate with the value.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `solidgauge` series are defined in plotOptions.solidgauge.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotSolidgaugeOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotSolidgaugeAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Whether to give each point an individual color.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts) Data labels for the gauge. For gauges, the data labels are
     * enabled by default and shown in a bordered box below the point.
     */
    dataLabels?: (PlotSolidgaugeDataLabelsOptions|Array<PlotSolidgaugeDataLabelsOptions>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts) The inner radius for points in a solid gauge. Can be given
     * as a number (pixels) or percentage string.
     */
    innerRadius?: (number|string);
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) Whether the strokes of the solid gauge should be `round` or
     * `square`.
     */
    linecap?: OptionsLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Allow the gauge to overshoot the end of the perimeter axis
     * by this many degrees. Say if the gauge axis goes from 0 to 60, a value of
     * 100, or 1000, will show 5 degrees beyond the end of the axis when this
     * option is set to 5.
     */
    overshoot?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts) The outer radius for points in a solid gauge. Can be given
     * as a number (pixels) or percentage string.
     */
    radius?: (number|string);
    /**
     * (Highcharts) Wether to draw rounded edges on the gauge.
     */
    rounded?: boolean;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Defaults to false for gauge series.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The threshold or base level for the gauge.
     */
    threshold?: number;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotSplineAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSplineDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotSplineDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotSplineDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotSplineDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotSplineDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A spline series is a special type of line series,
 * where the segments between the data points are smoothed.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `spline` series are defined in plotOptions.spline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotSplineOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotSplineAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotSplineDataLabelsOptions|Array<PlotSplineDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotSplineDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The line cap used for line ends and line joins on
     * the graph.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotStochasticAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotStochasticDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotStochasticDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotStochasticDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotStochasticDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Stochastic oscillator. This series requires the `linkedTo` option
 * to be set and should be loaded after the `stock/indicators/indicators.js`
 * file.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `stochastic` series are defined in plotOptions.stochastic.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotStochasticOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotStochasticAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotStochasticDataLabelsOptions|Array<PlotStochasticDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotStochasticDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotStochasticParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highstock) Smoothed line options.
     */
    smoothedLine?: PlotStochasticSmoothedLineOptions;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotStochasticParamsOptions {
    /**
     * (Highstock) Periods for Stochastic oscillator: [%K, %D].
     */
    periods?: [number, number];
}
/**
 * (Highstock) Smoothed line options.
 */
export interface PlotStochasticSmoothedLineOptions {
    /**
     * (Highstock) Styles for a smoothed line.
     */
    styles?: PlotStochasticSmoothedLineStylesOptions;
}
/**
 * (Highstock) Styles for a smoothed line.
 */
export interface PlotStochasticSmoothedLineStylesOptions {
    /**
     * (Highstock) Color of the line. If not set, it's inherited from
     * plotOptions.stochastic.color.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotStreamgraphAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotStreamgraphDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotStreamgraphDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotStreamgraphDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotStreamgraphDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface PlotStreamgraphDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A streamgraph is a type of stacked area graph which
 * is displaced around a central axis, resulting in a flowing, organic shape.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `streamgraph` series are defined in
 * plotOptions.streamgraph.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotStreamgraphOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotStreamgraphAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Name of the dash style to use for the graph, or
     * for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotStreamgraphDataLabelsOptions|Array<PlotStreamgraphDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotStreamgraphDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Fill color or gradient for the area. When `null`,
     * the series' `color` is used with the series' `fillOpacity`.
     *
     * In styled mode, the fill color can be set with the `.highcharts-area`
     * class name.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Fill opacity for the area. When you set an
     * explicit `fillColor`, the `fillOpacity` is not applied. Instead, you
     * should define the opacity in the `fillColor` with an rgba color
     * definition. The `fillOpacity` setting, also the default setting,
     * overrides the alpha component of the `color` setting.
     *
     * In styled mode, the fill opacity can be set with the `.highcharts-area`
     * class name.
     */
    fillOpacity?: number;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) A separate color for the graph line. By default
     * the line takes the `color` of the series, but the lineColor setting
     * allows setting a separate color for the line without altering the
     * `fillColor`.
     *
     * In styled mode, the line stroke can be set with the `.highcharts-graph`
     * class name.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series. Properties like `fillColor`, `lineColor` and `lineWidth` define
     * the visual appearance of the markers. Other series types, like column
     * series, don't have markers, but have visual options on the series level
     * instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A separate color for the negative part of the area.
     *
     * In styled mode, a negative color is set with the `.highcharts-negative`
     * class name.
     */
    negativeFillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) Whether to apply a drop shadow to the graph line.
     * Since 2.3 the shadow can be an object configuration containing `color`,
     * `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The Y axis value to serve as the base for the
     * area, for distinguishing between values above and below a threshold. The
     * area between the graph and the threshold is filled.
     *
     * * If a number is given, the Y axis will scale to the threshold.
     *
     * * If `null`, the scaling behaves like a line series with fill between the
     * graph and the Y axis minimum.
     *
     * * If `Infinity` or `-Infinity`, the area between the graph and the
     * corresponding Y axis extreme is filled (since v6.1.0).
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock) Whether the whole area or just the line should
     * respond to mouseover tooltips and other mouse or touch events.
     */
    trackByArea?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotSunburstAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSunburstDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Can set a `colorVariation` on all points which lies on the same
 * level.
 */
export interface PlotSunburstLevelsColorVariationOptions {
    /**
     * (Highcharts) The key of a color variation. Currently supports
     * `brightness` only.
     */
    key?: string;
    /**
     * (Highcharts) The ending value of a color variation. The last sibling will
     * receive this value.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSunburstLevelsDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Determines the width of the ring per level.
 */
export interface PlotSunburstLevelSizeOptions {
    /**
     * (Highcharts) How to interpret `levelSize.value`.
     *
     * - `percentage` gives a width relative to result of outer radius minus
     * inner radius.
     *
     * - `pixels` gives the ring a fixed width in pixels.
     *
     * - `weight` takes the remaining width after percentage and pixels, and
     * distributes it accross all "weighted" levels. The value relative to the
     * sum of all weights determines the width.
     */
    unit?: OptionsUnitValue;
    /**
     * (Highcharts) The value used for calculating the width of the ring. Its'
     * affect is determined by `levelSize.unit`.
     */
    value?: number;
}
/**
 * (Highcharts) Set options on specific levels. Takes precedence over series
 * options, but not point options.
 */
export interface PlotSunburstLevelsOptions {
    /**
     * (Highcharts) Can set a `borderColor` on all points which lies on the same
     * level.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts) Can set a `borderDashStyle` on all points which lies on the
     * same level.
     */
    borderDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Can set a `borderWidth` on all points which lies on the same
     * level.
     */
    borderWidth?: number;
    /**
     * (Highcharts) Can set a `color` on all points which lies on the same
     * level.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Can set a `colorVariation` on all points which lies on the
     * same level.
     */
    colorVariation?: PlotSunburstLevelsColorVariationOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Can set `dataLabels` on all
     * points which lies on the same level.
     */
    dataLabels?: (SeriesSunburstDataLabelsOptionsObject|Array<SeriesSunburstDataLabelsOptionsObject>);
    /**
     * (Highcharts) Can set a `levelSize` on all points which lies on the same
     * level.
     */
    levelSize?: object;
    /**
     * (Highcharts) Can set a `rotation` on all points which lies on the same
     * level.
     */
    rotation?: number;
    /**
     * (Highcharts) Can set a `rotationMode` on all points which lies on the
     * same level.
     */
    rotationMode?: string;
}
/**
 * (Highcharts) A Sunburst displays hierarchical data, where a level in the
 * hierarchy is represented by a circle. The center represents the root node of
 * the tree. The visualization bears a resemblance to both treemap and pie
 * charts.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `sunburst` series are defined in plotOptions.sunburst.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotSunburstOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) When enabled the user can click on a point which is a parent
     * and zoom in on its children.
     */
    allowTraversingTree?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotSunburstAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The color of the border surrounding each slice. When `null`,
     * the border takes the same color as the slice fill. This can be used
     * together with a `borderWidth` to fill drawing gaps created by
     * antialiazing artefacts in borderless pies.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the border surrounding each slice.
     *
     * When setting the border width to 0, there may be small gaps between the
     * slices due to SVG antialiasing artefacts. To work around this, keep the
     * border width at 0.5 or 1, but set the `borderColor` to `null` instead.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The center of the sunburst chart relative to the plot area.
     * Can be percentages or pixel values.
     */
    center?: Array<(number|string)>;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) The color of the pie series. A pie series is represented as
     * an empty circle if the total sum of its values is 0. Use this property to
     * define the color of its border.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts) A series specific or series type specific color set to use
     * instead of the global colors.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (SeriesSunburstDataLabelsOptionsObject|Array<SeriesSunburstDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) If the total sum of the pie's values is 0, the series is
     * represented as an empty circle . The `fillColor` option defines the color
     * of that circle. Use pie.borderWidth to set the border thickness.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) Used together with the levels and `allowDrillToNode`
     * options. When set to false the first level visible when drilling is
     * considered to be level one. Otherwise the level will be the same as the
     * tree structure.
     */
    levelIsConstant?: boolean;
    /**
     * (Highcharts) Set options on specific levels. Takes precedence over series
     * options, but not point options.
     */
    levels?: Array<PlotSunburstLevelsOptions>;
    /**
     * (Highcharts) Determines the width of the ring per level.
     */
    levelSize?: PlotSunburstLevelSizeOptions;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts) Which point to use as a root in the visualization.
     */
    rootId?: string;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Since 2.1, pies are not shown in the legend by default.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) The diameter of the pie relative to the plot area. Can be a
     * percentage or pixel value. Pixel values are given as integers. The
     * default behaviour (as of 3.0) is to scale to the plot area and give room
     * for data labels within the plot area. slicedOffset is also included in
     * the default size calculation. As a consequence, the size of the pie may
     * vary when points are updated and data labels more around. In that case it
     * is best to set a fixed value, for example `"75%"`.
     */
    size?: (number|string|null);
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) If a point is sliced, moved out from the center, how many
     * pixels should it be moved?.
     */
    slicedOffset?: number;
    /**
     * (Highcharts) The start angle of the pie slices in degrees where 0 is top
     * and 90 right.
     */
    startAngle?: number;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip. When `stickyTracking` is
     * false and `tooltip.shared` is false, the tooltip will be hidden when
     * moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts) Options for the button appearing when traversing down in a
     * treemap.
     */
    traverseUpButton?: PlotSunburstTraverseUpButtonOptions;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Options for the button appearing when traversing down in a
 * treemap.
 */
export interface PlotSunburstTraverseUpButtonOptions {
    /**
     * (Highcharts) The position of the button.
     */
    position?: PlotSunburstTraverseUpButtonPositionOptions;
}
/**
 * (Highcharts) The position of the button.
 */
export interface PlotSunburstTraverseUpButtonPositionOptions {
    /**
     * (Highcharts) Horizontal alignment of the button.
     */
    align?: AlignValue;
    /**
     * (Highcharts) Vertical alignment of the button.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts) Horizontal offset of the button.
     */
    x?: number;
    /**
     * (Highcharts) Vertical offset of the button.
     */
    y?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotSupertrendAnimationOptions {
    defer?: number;
}
/**
 * (Highstock) The styles for the Supertrend line that intersect main series.
 */
export interface PlotSupertrendChangeTrendLineOptions {
    styles?: PlotSupertrendChangeTrendLineStylesOptions;
}
export interface PlotSupertrendChangeTrendLineStylesOptions {
    /**
     * (Highstock) The dash or dot style of the grid lines. For possible values,
     * see this demonstration.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Color of the line.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Pixel width of the line.
     */
    lineWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotSupertrendDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotSupertrendDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotSupertrendDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotSupertrendDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Supertrend indicator. This series requires the `linkedTo` option
 * to be set and should be loaded after the `stock/indicators/indicators.js` and
 * `stock/indicators/sma.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `supertrend` series are defined in plotOptions.supertrend.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotSupertrendOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotSupertrendAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) The styles for the Supertrend line that intersect main
     * series.
     */
    changeTrendLine?: PlotSupertrendChangeTrendLineOptions;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotSupertrendDataLabelsOptions|Array<PlotSupertrendDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotSupertrendDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Color of the Supertrend series line that is above the main
     * series.
     */
    fallingTrendColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of Supertrend indicator series
     * points.
     */
    params?: PlotSupertrendParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Color of the Supertrend series line that is beneath the main
     * series.
     */
    risingTrendColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of Supertrend indicator series
 * points.
 */
export interface PlotSupertrendParamsOptions {
    /**
     * (Highstock) Multiplier for Supertrend Indicator.
     */
    multiplier?: number;
    /**
     * (Highstock) The base period for indicator Supertrend Indicator
     * calculations. This is the number of data points which are taken into
     * account for the indicator calculations.
     */
    period?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotTemaAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotTemaDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotTemaDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotTemaDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotTemaDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Triple exponential moving average (TEMA) indicator. This series
 * requires `linkedTo` option to be set and should be loaded after the
 * `stock/indicators/indicators.js` and `stock/indicators/ema.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `tema` series are defined in plotOptions.tema.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotTemaOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotTemaAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotTemaDataLabelsOptions|Array<PlotTemaDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotTemaDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotTemaParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotTemaParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     *
     * By default index value used to be set to 0. Since Highstock 7 by default
     * index is set to 3 which means that the ema indicator will be calculated
     * using Close values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts, Highmaps) Animation is disabled by default on the heatmap
 * series.
 */
export interface PlotTilemapAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotTilemapDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotTilemapDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotTilemapDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highmaps) Style options for the guide box. The guide box has one
 * state by default, the `default` state.
 */
export interface PlotTilemapDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highmaps) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highmaps) A tilemap series is a type of heatmap where the tile
 * shapes are configurable.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `tilemap` series are defined in plotOptions.tilemap.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotTilemapOptions {
    /**
     * (Highcharts, Highmaps) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highcharts, Highmaps) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highmaps) Animation is disabled by default on the heatmap
     * series.
     */
    animation?: (boolean|PlotTilemapAnimationOptions);
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width for each heat map item.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highmaps) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In heat maps this color is
     * rarely used, as we mostly use the color to denote the value of each
     * point. Unless options are set in the colorAxis, the default value is
     * pulled from the options.colors array.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highmaps) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highmaps) The column size - how many X axis units each
     * column in the tilemap should span. Works as in Heatmaps.
     */
    colsize?: number;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highmaps) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highmaps) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotTilemapDataLabelsOptions|Array<PlotTilemapDataLabelsOptions>);
    /**
     * (Highcharts, Highmaps) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highmaps) The draggable-points module allows points to be
     * moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highmaps) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highmaps) General event handlers for the series items. These
     * event hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highmaps) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highmaps) An array specifying which option maps to which key
     * in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    marker?: any;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highmaps) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) The color applied to null points. In styled mode,
     * a general CSS class is applied instead.
     */
    nullColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highmaps) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highmaps) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highmaps) The padding between points in the tilemap.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highmaps) The row size - how many Y axis units each tilemap
     * row should span. Analogous to colsize.
     */
    rowsize?: number;
    /**
     * (Highcharts, Highmaps) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highmaps) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highmaps) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highmaps) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highmaps) The shape of the tiles in the tilemap. Possible
     * values are `hexagon`, `circle`, `diamond`, and `square`.
     */
    tileShape?: TilemapShapeValue;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highmaps) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock) A collection of SVG attributes to override the
 * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
 */
export interface PlotTilemapStatesHoverHaloAttributesOptions {
    zIndex?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotTimelineAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotTimelineDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotTimelineDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) The timeline series presents given events along a drawn line.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `timeline` series are defined in plotOptions.timeline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotTimelineOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotTimelineAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (TimelineDataLabelsOptionsObject|Array<TimelineDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    legendType?: string;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotTreemapAnimationOptions {
    defer?: number;
}
export interface PlotTreemapClusterEventsOptions {
    /**
     * (Highcharts, Highmaps) Fires when the cluster point is clicked and
     * `drillToCluster` is enabled. One parameter, `event`, is passed to the
     * function. The default action is to zoom to the cluster points range. This
     * can be prevented by calling `event.preventDefault()`.
     */
    drillToCluster?: MarkerClusterDrillCallbackFunction;
}
/**
 * (Highcharts, Highmaps) Options for layout algorithm. Inside there are options
 * to change the type of the algorithm, gridSize, distance or iterations.
 */
export interface PlotTreemapClusterLayoutAlgorithmOptions {
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `distance` is a
     * maximum distance between point and cluster center so that this point will
     * be inside the cluster. The distance is either a number defining pixels or
     * a percentage defining a percentage of the plot area width.
     */
    distance?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to the `grid`, `gridSize` is a
     * size of a grid square element either as a number defining pixels, or a
     * percentage defining a percentage of the plot area width.
     */
    gridSize?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `iterations` are
     * the number of iterations that this algorithm will be repeated to find
     * clusters positions.
     */
    iterations?: number;
    /**
     * (Highcharts, Highmaps) When `type` is set to `undefined` and there are
     * more visible points than the kmeansThreshold the `grid` algorithm is used
     * to find clusters, otherwise `kmeans`. It ensures good performance on
     * large datasets and better clusters arrangement after the zoom.
     */
    kmeansThreshold?: number;
    /**
     * (Highcharts, Highmaps) Type of the algorithm used to combine points into
     * a cluster. There are three available algorithms:
     *
     * 1) `grid` - grid-based clustering technique. Points are assigned to
     * squares of set size depending on their position on the plot area. Points
     * inside the grid square are combined into a cluster. The grid size can be
     * controlled by `gridSize` property (grid size changes at certain zoom
     * levels).
     *
     * 2) `kmeans` - based on K-Means clustering technique. In the first step,
     * points are divided using the grid method (distance property is a grid
     * size) to find the initial amount of clusters. Next, each point is
     * classified by computing the distance between each cluster center and that
     * point. When the closest cluster distance is lower than distance property
     * set by a user the point is added to this cluster otherwise is classified
     * as `noise`. The algorithm is repeated until each cluster center not
     * change its previous position more than one pixel. This technique is more
     * accurate but also more time consuming than the `grid` algorithm,
     * especially for big datasets.
     *
     * 3) `optimizedKmeans` - based on K-Means clustering technique. This
     * algorithm uses k-means algorithm only on the chart initialization or when
     * chart extremes have greater range than on initialization. When a chart is
     * redrawn the algorithm checks only clustered points distance from the
     * cluster center and rebuild it when the point is spaced enough to be
     * outside the cluster. It provides performance improvement and more stable
     * clusters position yet can be used rather on small and sparse datasets.
     *
     * By default, the algorithm depends on visible quantity of points and
     * `kmeansThreshold`. When there are more visible points than the
     * `kmeansThreshold` the `grid` algorithm is used, otherwise `kmeans`.
     *
     * The custom clustering algorithm can be added by assigning a callback
     * function as the type property. This function takes an array of
     * `processedXData`, `processedYData`, `processedXData` indexes and
     * `layoutAlgorithm` options as arguments and should return an object with
     * grouped data.
     *
     * The algorithm should return an object like that: (see online
     * documentation for example)
     *
     * `clusterId` (example above - unique id of a cluster or noise) is an array
     * of points belonging to a cluster. If the array has only one point or
     * fewer points than set in `cluster.minimumClusterSize` it won't be
     * combined into a cluster.
     */
    type?: (string|Function);
}
/**
 * (Highcharts, Highmaps) Options for marker clusters, the concept of sampling
 * the data values into larger blocks in order to ease readability and increase
 * performance of the JavaScript charts.
 *
 * Note: marker clusters module is not working with `boost` and
 * `draggable-points` modules.
 *
 * The marker clusters feature requires the marker-clusters.js file to be
 * loaded, found in the modules directory of the download package, or online at
 * code.highcharts.com/modules/marker-clusters.js.
 */
export interface PlotTreemapClusterOptions {
    /**
     * (Highcharts, Highmaps) When set to `false` prevent cluster overlapping -
     * this option works only when `layoutAlgorithm.type = "grid"`.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker animation.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highmaps) Options for the cluster data labels.
     */
    dataLabels?: DataLabelsOptions;
    /**
     * (Highcharts, Highmaps) Zoom the plot area to the cluster points range
     * when a cluster is clicked.
     */
    drillToCluster?: boolean;
    /**
     * (Highcharts, Highmaps) Whether to enable the marker-clusters module.
     */
    enabled?: boolean;
    events?: PlotTreemapClusterEventsOptions;
    /**
     * (Highcharts, Highmaps) Options for layout algorithm. Inside there are
     * options to change the type of the algorithm, gridSize, distance or
     * iterations.
     */
    layoutAlgorithm?: PlotTreemapClusterLayoutAlgorithmOptions;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The minimum amount of points to be combined into a
     * cluster. This value has to be greater or equal to 2.
     */
    minimumClusterSize?: number;
    states?: PlotTreemapClusterStatesOptions;
    /**
     * (Highcharts, Highmaps) An array defining zones within marker clusters.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-cluster-zone-{n}` class, or custom classed from the
     * `className` option.
     */
    zones?: Array<PlotTreemapClusterZonesOptions>;
}
export interface PlotTreemapClusterStatesHoverOptions {
    /**
     * (Highcharts, Highmaps) The fill color of the cluster marker in hover
     * state. When `undefined`, the series' or point's fillColor for normal
     * state is used.
     */
    fillColor?: ColorType;
}
export interface PlotTreemapClusterStatesOptions {
    hover?: PlotTreemapClusterStatesHoverOptions;
}
/**
 * (Highcharts, Highmaps) An array defining zones within marker clusters.
 *
 * In styled mode, the color zones are styled with the
 * `.highcharts-cluster-zone-{n}` class, or custom classed from the `className`
 * option.
 */
export interface PlotTreemapClusterZonesOptions {
    /**
     * (Highcharts, Highmaps) Styled mode only. A custom class name for the
     * zone.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The value where the zone starts.
     */
    from?: number;
    /**
     * (Highcharts, Highmaps) Settings for the cluster marker belonging to the
     * zone.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The value where the zone ends.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotTreemapDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotTreemapDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotTreemapDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) A configuration object to define how the color of a child varies
 * from the parent's color. The variation is distributed among the children of
 * node. For example when setting brightness, the brightness change will range
 * from the parent's original brightness on the first child, to the amount set
 * in the `to` setting on the last node. This allows a gradient-like color
 * scheme that sets children out from each other while highlighting the grouping
 * on treemaps and sectors on sunburst charts.
 */
export interface PlotTreemapLevelsColorVariationOptions {
    /**
     * (Highcharts) The key of a color variation. Currently supports
     * `brightness` only.
     */
    key?: "brightness";
    /**
     * (Highcharts) The ending value of a color variation. The last sibling will
     * receive this value.
     */
    to?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotTreemapLevelsDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Can set the options of dataLabels on each point which lies on
 * the level. plotOptions.treemap.dataLabels for possible values.
 */
export interface PlotTreemapLevelsDataLabelsOptions {
    /**
     * (Highcharts) The alignment of the data label compared to the point. If
     * `right`, the right side of the label should be touching the point. For
     * points with an extent, like columns, the alignments also dictates how to
     * align it inside the box, as given with the inside option. Can be one of
     * `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts) Whether to allow data labels to overlap. To make the labels
     * less sensitive for overlapping, the dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed for the `dataLabels`. The animation can also be set as a
     * configuration object. Please note that this option only applies to the
     * initial animation. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotTreemapLevelsDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The background color or gradient for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The border color for the data label. Defaults to
     * `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The border radius in pixels for the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts) The border width in pixels for the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts) A class name for the data label. Particularly in styled
     * mode, this can be used to give each series' or point's data label unique
     * styling. In addition to this option, a default color class name is added
     * so that we can give the labels a contrast text shadow.
     */
    className?: string;
    /**
     * (Highcharts) The text color for the data labels. Defaults to `undefined`.
     * For certain series types, like column or map, the data labels can be
     * drawn inside the points. In this case the data label will be drawn with
     * maximum contrast by default. Additionally, it will be given a
     * `text-outline` style with the opposite color, to further increase the
     * contrast. This can be overridden by setting the `text-outline` style to
     * `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Whether to hide data labels that are outside the plot area.
     * By default, the data label is moved inside the plot area according to the
     * overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts) Enable or disable the data labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts) A declarative filter to control of which data labels to
     * display. The declarative filter is designed for use when callback
     * functions are not available, like when the chart options require a pure
     * JSON structure or for use with graphical editors. For programmatic
     * control, use the `formatter` instead, and return `undefined` to disable a
     * single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts) A format string for the data label. Available variables are
     * the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts) Callback JavaScript function to format the data label. Note
     * that if a `format` is defined, the format takes precedence and the
     * formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts) For points with an extent, like columns or map areas,
     * whether to align the data label inside the box or to the actual value
     * point. Defaults to `false` in most cases, `true` in stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts) Format for points with the value of null. Works analogously
     * to format. `nullFormat` can be applied only to series which support
     * displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts) Callback JavaScript function that defines formatting for
     * points with the value of null. Works analogously to formatter.
     * `nullPointFormatter` can be applied only to series which support
     * displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts) How to handle data labels that flow outside the plot area.
     * The default is `"justify"`, which aligns them inside the plot area. For
     * columns and bars, this means it will be moved inside the bar. To display
     * data labels outside the plot area, set `crop` to `false` and `overflow`
     * to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts) When either the `borderWidth` or the `backgroundColor` is
     * set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts) Aligns data labels relative to points. If `center` alignment
     * is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts) Text rotation in degrees. Note that due to a more complex
     * structure, backgrounds, borders and padding will be lost on a rotated
     * data label.
     */
    rotation?: number;
    /**
     * (Highcharts) The shadow of the box. Works best with `borderWidth` or
     * `backgroundColor`. Since 2.3 the shadow can be an object configuration
     * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) The name of a symbol to use for the border around the label.
     * Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts) Styles for the label. The default `color` setting is
     * `"contrast"`, which is a pseudo color that Highcharts picks up and
     * applies the maximum contrast to the underlying point item, for example
     * the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts) Options for a label text which should follow marker's shape.
     * Border and background are disabled for a label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts) The vertical alignment of a data label. Can be one of `top`,
     * `middle` or `bottom`. The default value depends on the data, for instance
     * in a column chart, the label is above positive values and below negative
     * values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts) The x position offset of the label relative to the point in
     * pixels.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of the label relative to the point in
     * pixels.
     */
    y?: number;
    /**
     * (Highcharts) The Z index of the data labels. The default Z index puts it
     * above the series. Use a Z index of 2 to display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) Set options on specific levels. Takes precedence over series
 * options, but not point options.
 */
export interface PlotTreemapLevelsOptions {
    /**
     * (Highcharts) Can set a `borderColor` on all points which lies on the same
     * level.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts) Set the dash style of the border of all the point which lies
     * on the level. See plotOptions.scatter.dashStyle for possible options.
     */
    borderDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Can set the borderWidth on all points which lies on the same
     * level.
     */
    borderWidth?: number;
    /**
     * (Highcharts) Can set a color on all points which lies on the same level.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) A configuration object to define how the color of a child
     * varies from the parent's color. The variation is distributed among the
     * children of node. For example when setting brightness, the brightness
     * change will range from the parent's original brightness on the first
     * child, to the amount set in the `to` setting on the last node. This
     * allows a gradient-like color scheme that sets children out from each
     * other while highlighting the grouping on treemaps and sectors on sunburst
     * charts.
     */
    colorVariation?: PlotTreemapLevelsColorVariationOptions;
    /**
     * (Highcharts) Can set the options of dataLabels on each point which lies
     * on the level. plotOptions.treemap.dataLabels for possible values.
     */
    dataLabels?: (PlotTreemapLevelsDataLabelsOptions|Array<PlotTreemapLevelsDataLabelsOptions>);
    /**
     * (Highcharts) Can set the layoutAlgorithm option on a specific level.
     */
    layoutAlgorithm?: OptionsLayoutAlgorithmValue;
    /**
     * (Highcharts) Can set the layoutStartingDirection option on a specific
     * level.
     */
    layoutStartingDirection?: OptionsLayoutStartingDirectionValue;
    /**
     * (Highcharts) Decides which level takes effect from the options set in the
     * levels object.
     */
    level?: number;
}
/**
 * (Highcharts) A treemap displays hierarchical data using nested rectangles.
 * The data can be laid out in varying ways depending on options.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `treemap` series are defined in plotOptions.treemap.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotTreemapOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) When enabled the user can click on a point which is a parent
     * and zoom in on its children.
     */
    allowTraversingTree?: boolean;
    /**
     * (Highcharts) Enabling this option will make the treemap alternate the
     * drawing direction between vertical and horizontal. The next levels
     * starting direction will always be the opposite of the previous.
     */
    alternateStartingDirection?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotTreemapAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highcharts) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The color of the border surrounding each tree map item.
     */
    borderColor?: ColorString;
    /**
     * (Highmaps) The width of the border surrounding each tree map item.
     */
    borderWidth?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highmaps) Options for marker clusters, the concept of
     * sampling the data values into larger blocks in order to ease readability
     * and increase performance of the JavaScript charts.
     *
     * Note: marker clusters module is not working with `boost` and
     * `draggable-points` modules.
     *
     * The marker clusters feature requires the marker-clusters.js file to be
     * loaded, found in the modules directory of the download package, or online
     * at code.highcharts.com/modules/marker-clusters.js.
     */
    cluster?: PlotTreemapClusterOptions;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) When using automatic point colors pulled from the
     * `options.colors` collection, this option determines whether the chart
     * should receive one color per series or one color per point.
     */
    colorByPoint?: object;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts) A series specific or series type specific color set to apply
     * instead of the global colors when colorByPoint is true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) When the series contains less points than the crop
     * threshold, all points are drawn, event if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotTreemapDataLabelsOptions|Array<PlotTreemapDataLabelsOptions>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts) Whether to ignore hidden points when the layout algorithm
     * runs. If `false`, hidden points will leave open spaces.
     */
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts) This option decides if the user can interact with the parent
     * nodes or just the leaf nodes. When this option is undefined, it will be
     * true by default. However when allowTraversingTree is true, then it will
     * be false by default.
     */
    interactByLeaf?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) This option decides which algorithm is used for setting
     * position and dimensions of the points.
     */
    layoutAlgorithm?: OptionsLayoutAlgorithmValue;
    /**
     * (Highcharts) Defines which direction the layout algorithm will start
     * drawing.
     */
    layoutStartingDirection?: OptionsLayoutStartingDirectionValue;
    /**
     * (Highcharts) Used together with the levels and allowTraversingTree
     * options. When set to false the first level visible to be level one, which
     * is dynamic when traversing the tree. Otherwise the level will be the same
     * as the tree structure.
     */
    levelIsConstant?: boolean;
    /**
     * (Highcharts) Set options on specific levels. Takes precedence over series
     * options, but not point options.
     */
    levels?: Array<PlotTreemapLevelsOptions>;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) The width of the line connecting the data points.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The opacity of a point in treemap. When a point has
     * children, the visibility of the children is determined by the opacity.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this series type or specific series item
     * in the legend.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts) The sort index of the point inside the treemap level.
     */
    sortIndex?: number;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    /**
     * (Highcharts) A wrapper object for all the series options in specific
     * states.
     */
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts) Options for the button appearing when traversing down in a
     * treemap.
     */
    traverseUpButton?: PlotTreemapTraverseUpButtonOptions;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Options for the button appearing when traversing down in a
 * treemap.
 */
export interface PlotTreemapTraverseUpButtonOptions {
    /**
     * (Highcharts) The position of the button.
     */
    position?: PlotTreemapTraverseUpButtonPositionOptions;
}
/**
 * (Highcharts) The position of the button.
 */
export interface PlotTreemapTraverseUpButtonPositionOptions {
    /**
     * (Highcharts) Horizontal alignment of the button.
     */
    align?: AlignValue;
    /**
     * (Highcharts) Vertical alignment of the button.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts) Horizontal offset of the button.
     */
    x?: number;
    /**
     * (Highcharts) Vertical offset of the button.
     */
    y?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotTrendlineAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotTrendlineDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotTrendlineDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotTrendlineDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotTrendlineDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Trendline (linear regression) fits a straight line to the
 * selected data using a method called the Sum Of Least Squares. This series
 * requires the `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `trendline` series are defined in plotOptions.trendline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotTrendlineOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotTrendlineAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotTrendlineDataLabelsOptions|Array<PlotTrendlineDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotTrendlineDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotTrendlineParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotTrendlineParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: (number|string);
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotTrixAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotTrixDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotTrixDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotTrixDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotTrixDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Triple exponential average (TRIX) oscillator. This series
 * requires `linkedTo` option to be set.
 *
 * Requires https://code.highcharts.com/stock/indicators/ema.js and
 * https://code.highcharts.com/stock/indicators/tema.js.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `trix` series are defined in plotOptions.trix.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotTrixOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotTrixAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotTrixDataLabelsOptions|Array<PlotTrixDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotTrixDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotTrixParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotTrixParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     *
     * By default index value used to be set to 0. Since Highstock 7 by default
     * index is set to 3 which means that the ema indicator will be calculated
     * using Close values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotVariablepieAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotVariablepieDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) A variable pie series is a two dimensional series type, where
 * each point renders an Y and Z value. Each point is drawn as a pie slice where
 * the size (arc) of the slice relates to the Y value and the radius of pie
 * slice relates to the Z value.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `variablepie` series are defined in
 * plotOptions.variablepie.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotVariablepieOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotVariablepieAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The color of the border surrounding each slice. When `null`,
     * the border takes the same color as the slice fill. This can be used
     * together with a `borderWidth` to fill drawing gaps created by
     * antialiazing artefacts in borderless pies.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the border surrounding each slice.
     *
     * When setting the border width to 0, there may be small gaps between the
     * slices due to SVG antialiasing artefacts. To work around this, keep the
     * border width at 0.5 or 1, but set the `borderColor` to `null` instead.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The center of the pie chart relative to the plot area. Can
     * be percentages or pixel values. The default behaviour (as of 3.0) is to
     * center the pie so that all slices and data labels are within the plot
     * area. As a consequence, the pie may actually jump around in a chart with
     * dynamic values, as the data labels move. In that case, the center should
     * be explicitly set, for example to `["50%", "50%"]`.
     */
    center?: [(number|string|null), (number|string|null)];
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The color of the pie series. A pie series is represented as
     * an empty circle if the total sum of its values is 0. Use this property to
     * define the color of its border.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts) A series specific or series type specific color set to use
     * instead of the global colors.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (SeriesPieDataLabelsOptionsObject|Array<SeriesPieDataLabelsOptionsObject>);
    /**
     * (Highcharts) The thickness of a 3D pie.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) The end angle of the pie in degrees where 0 is top and 90 is
     * right. Defaults to `startAngle` plus 360.
     */
    endAngle?: number;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) If the total sum of the pie's values is 0, the series is
     * represented as an empty circle . The `fillColor` option defines the color
     * of that circle. Use pie.borderWidth to set the border thickness.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) Equivalent to chart.ignoreHiddenSeries, this option tells
     * whether the series shall be redrawn as if the hidden point were `null`.
     *
     * The default value changed from `false` to `true` with Highcharts 3.0.
     */
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts) The size of the inner diameter for the pie. A size greater
     * than 0 renders a donut chart. Can be a percentage or pixel value.
     * Percentages are relative to the pie size. Pixel values are given as
     * integers.
     *
     * Note: in Highcharts < 4.1.2, the percentage was relative to the plot
     * area, not the pie size.
     */
    innerSize?: (number|string);
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) The maximum size of the points' radius related to chart's
     * `plotArea`. If a number is set, it applies in pixels.
     */
    maxPointSize?: (number|string);
    /**
     * (Highcharts) The minimum size of the points' radius related to chart's
     * `plotArea`. If a number is set, it applies in pixels.
     */
    minPointSize?: (number|string);
    /**
     * (Highcharts) The minimum size for a pie in response to auto margins. The
     * pie will try to shrink to make room for data labels in side the plot
     * area, but only to this size.
     */
    minSize?: (number|string);
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Since 2.1, pies are not shown in the legend by default.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) The diameter of the pie relative to the plot area. Can be a
     * percentage or pixel value. Pixel values are given as integers. The
     * default behaviour (as of 3.0) is to scale to the plot area and give room
     * for data labels within the plot area. slicedOffset is also included in
     * the default size calculation. As a consequence, the size of the pie may
     * vary when points are updated and data labels more around. In that case it
     * is best to set a fixed value, for example `"75%"`.
     */
    size?: (number|string|null);
    /**
     * (Highcharts) Whether the pie slice's value should be represented by the
     * area or the radius of the slice. Can be either `area` or `radius`. The
     * default, `area`, corresponds best to the human perception of the size of
     * each pie slice.
     */
    sizeBy?: VariablePieSizeByValue;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) If a point is sliced, moved out from the center, how many
     * pixels should it be moved?.
     */
    slicedOffset?: number;
    /**
     * (Highcharts) The start angle of the pie slices in degrees where 0 is top
     * and 90 right.
     */
    startAngle?: number;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip. When `stickyTracking` is
     * false and `tooltip.shared` is false, the tooltip will be hidden when
     * moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts) The maximum possible z value for the point's radius
     * calculation. If the point's Z value is bigger than zMax, the slice will
     * be drawn according to the zMax value
     */
    zMax?: number;
    /**
     * (Highcharts) The minimum possible z value for the point's radius
     * calculation. If the point's Z value is smaller than zMin, the slice will
     * be drawn according to the zMin value.
     */
    zMin?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotVariwideAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotVariwideDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotVariwideDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotVariwideDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotVariwideDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotVariwideDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A variwide chart (related to marimekko chart) is a column chart
 * with a variable width expressing a third dimension.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `variwide` series are defined in plotOptions.variwide.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotVariwideOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotVariwideAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotVariwideDataLabelsOptions|Array<PlotVariwideDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotVariwideDataSortingOptions);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) In a variwide chart, the group padding is
     * 0 in order to express the horizontal stacking of items.
     */
    groupPadding?: number;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) In a variwide chart, the point padding is
     * 0 in order to express the horizontal stacking of items.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotVbpAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotVbpDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotVbpDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotVbpDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotVbpDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Volume By Price indicator.
 *
 * This series requires `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `vbp` series are defined in plotOptions.vbp.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotVbpOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotVbpAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotVbpDataLabelsOptions|Array<PlotVbpDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotVbpDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotVbpParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    pointPadding?: number;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highstock) The styles for bars when volume is divided into
     * positive/negative.
     */
    volumeDivision?: PlotVbpVolumeDivisionOptions;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highstock) The styles for lines which determine price zones.
     */
    zoneLines?: PlotVbpZoneLinesOptions;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotVbpParamsOptions {
    /**
     * (Highstock) The number of price zones.
     */
    ranges?: number;
    /**
     * (Highstock) The id of volume series which is mandatory. For example using
     * OHLC data, volumeSeriesID='volume' means the indicator will be calculated
     * using OHLC and volume values.
     */
    volumeSeriesID?: string;
}
/**
 * (Highstock) The styles for bars when volume is divided into
 * positive/negative.
 */
export interface PlotVbpVolumeDivisionOptions {
    /**
     * (Highstock) Option to control if volume is divided.
     */
    enabled?: boolean;
    styles?: PlotVbpVolumeDivisionStylesOptions;
}
export interface PlotVbpVolumeDivisionStylesOptions {
    /**
     * (Highstock) Color of negative volume bars.
     */
    negativeColor?: ColorString;
    /**
     * (Highstock) Color of positive volume bars.
     */
    positiveColor?: ColorString;
}
/**
 * (Highstock) The styles for lines which determine price zones.
 */
export interface PlotVbpZoneLinesOptions {
    /**
     * (Highstock) Enable/disable zone lines.
     */
    enabled?: boolean;
    /**
     * (Highstock) Specify the style of zone lines.
     */
    styles?: CSSObject;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotVectorAnimationOptions {
    defer?: number;
}
export interface PlotVectorClusterEventsOptions {
    /**
     * (Highcharts, Highmaps) Fires when the cluster point is clicked and
     * `drillToCluster` is enabled. One parameter, `event`, is passed to the
     * function. The default action is to zoom to the cluster points range. This
     * can be prevented by calling `event.preventDefault()`.
     */
    drillToCluster?: MarkerClusterDrillCallbackFunction;
}
/**
 * (Highcharts, Highmaps) Options for layout algorithm. Inside there are options
 * to change the type of the algorithm, gridSize, distance or iterations.
 */
export interface PlotVectorClusterLayoutAlgorithmOptions {
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `distance` is a
     * maximum distance between point and cluster center so that this point will
     * be inside the cluster. The distance is either a number defining pixels or
     * a percentage defining a percentage of the plot area width.
     */
    distance?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to the `grid`, `gridSize` is a
     * size of a grid square element either as a number defining pixels, or a
     * percentage defining a percentage of the plot area width.
     */
    gridSize?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `iterations` are
     * the number of iterations that this algorithm will be repeated to find
     * clusters positions.
     */
    iterations?: number;
    /**
     * (Highcharts, Highmaps) When `type` is set to `undefined` and there are
     * more visible points than the kmeansThreshold the `grid` algorithm is used
     * to find clusters, otherwise `kmeans`. It ensures good performance on
     * large datasets and better clusters arrangement after the zoom.
     */
    kmeansThreshold?: number;
    /**
     * (Highcharts, Highmaps) Type of the algorithm used to combine points into
     * a cluster. There are three available algorithms:
     *
     * 1) `grid` - grid-based clustering technique. Points are assigned to
     * squares of set size depending on their position on the plot area. Points
     * inside the grid square are combined into a cluster. The grid size can be
     * controlled by `gridSize` property (grid size changes at certain zoom
     * levels).
     *
     * 2) `kmeans` - based on K-Means clustering technique. In the first step,
     * points are divided using the grid method (distance property is a grid
     * size) to find the initial amount of clusters. Next, each point is
     * classified by computing the distance between each cluster center and that
     * point. When the closest cluster distance is lower than distance property
     * set by a user the point is added to this cluster otherwise is classified
     * as `noise`. The algorithm is repeated until each cluster center not
     * change its previous position more than one pixel. This technique is more
     * accurate but also more time consuming than the `grid` algorithm,
     * especially for big datasets.
     *
     * 3) `optimizedKmeans` - based on K-Means clustering technique. This
     * algorithm uses k-means algorithm only on the chart initialization or when
     * chart extremes have greater range than on initialization. When a chart is
     * redrawn the algorithm checks only clustered points distance from the
     * cluster center and rebuild it when the point is spaced enough to be
     * outside the cluster. It provides performance improvement and more stable
     * clusters position yet can be used rather on small and sparse datasets.
     *
     * By default, the algorithm depends on visible quantity of points and
     * `kmeansThreshold`. When there are more visible points than the
     * `kmeansThreshold` the `grid` algorithm is used, otherwise `kmeans`.
     *
     * The custom clustering algorithm can be added by assigning a callback
     * function as the type property. This function takes an array of
     * `processedXData`, `processedYData`, `processedXData` indexes and
     * `layoutAlgorithm` options as arguments and should return an object with
     * grouped data.
     *
     * The algorithm should return an object like that: (see online
     * documentation for example)
     *
     * `clusterId` (example above - unique id of a cluster or noise) is an array
     * of points belonging to a cluster. If the array has only one point or
     * fewer points than set in `cluster.minimumClusterSize` it won't be
     * combined into a cluster.
     */
    type?: (string|Function);
}
/**
 * (Highcharts, Highmaps) Options for marker clusters, the concept of sampling
 * the data values into larger blocks in order to ease readability and increase
 * performance of the JavaScript charts.
 *
 * Note: marker clusters module is not working with `boost` and
 * `draggable-points` modules.
 *
 * The marker clusters feature requires the marker-clusters.js file to be
 * loaded, found in the modules directory of the download package, or online at
 * code.highcharts.com/modules/marker-clusters.js.
 */
export interface PlotVectorClusterOptions {
    /**
     * (Highcharts, Highmaps) When set to `false` prevent cluster overlapping -
     * this option works only when `layoutAlgorithm.type = "grid"`.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker animation.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highmaps) Options for the cluster data labels.
     */
    dataLabels?: DataLabelsOptions;
    /**
     * (Highcharts, Highmaps) Zoom the plot area to the cluster points range
     * when a cluster is clicked.
     */
    drillToCluster?: boolean;
    /**
     * (Highcharts, Highmaps) Whether to enable the marker-clusters module.
     */
    enabled?: boolean;
    events?: PlotVectorClusterEventsOptions;
    /**
     * (Highcharts, Highmaps) Options for layout algorithm. Inside there are
     * options to change the type of the algorithm, gridSize, distance or
     * iterations.
     */
    layoutAlgorithm?: PlotVectorClusterLayoutAlgorithmOptions;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The minimum amount of points to be combined into a
     * cluster. This value has to be greater or equal to 2.
     */
    minimumClusterSize?: number;
    states?: PlotVectorClusterStatesOptions;
    /**
     * (Highcharts, Highmaps) An array defining zones within marker clusters.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-cluster-zone-{n}` class, or custom classed from the
     * `className` option.
     */
    zones?: Array<PlotVectorClusterZonesOptions>;
}
export interface PlotVectorClusterStatesHoverOptions {
    /**
     * (Highcharts, Highmaps) The fill color of the cluster marker in hover
     * state. When `undefined`, the series' or point's fillColor for normal
     * state is used.
     */
    fillColor?: ColorType;
}
export interface PlotVectorClusterStatesOptions {
    hover?: PlotVectorClusterStatesHoverOptions;
}
/**
 * (Highcharts, Highmaps) An array defining zones within marker clusters.
 *
 * In styled mode, the color zones are styled with the
 * `.highcharts-cluster-zone-{n}` class, or custom classed from the `className`
 * option.
 */
export interface PlotVectorClusterZonesOptions {
    /**
     * (Highcharts, Highmaps) Styled mode only. A custom class name for the
     * zone.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The value where the zone starts.
     */
    from?: number;
    /**
     * (Highcharts, Highmaps) Settings for the cluster marker belonging to the
     * zone.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The value where the zone ends.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotVectorDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotVectorDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotVectorDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotVectorDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) A vector plot is a type of cartesian chart where each
 * point has an X and Y position, a length and a direction. Vectors are drawn as
 * arrows.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `vector` series are defined in plotOptions.vector.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotVectorOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotVectorAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highmaps) Options for marker clusters, the concept of
     * sampling the data values into larger blocks in order to ease readability
     * and increase performance of the JavaScript charts.
     *
     * Note: marker clusters module is not working with `boost` and
     * `draggable-points` modules.
     *
     * The marker clusters feature requires the marker-clusters.js file to be
     * loaded, found in the modules directory of the download package, or online
     * at code.highcharts.com/modules/marker-clusters.js.
     */
    cluster?: PlotVectorClusterOptions;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotVectorDataLabelsOptions|Array<PlotVectorDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotVectorDataSortingOptions);
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The line width for each vector arrow.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock) What part of the vector it should be rotated
     * around. Can be one of `start`, `center` and `end`. When `start`, the
     * vectors will start from the given [x, y] position, and when `end` the
     * vectors will end in the [x, y] position.
     */
    rotationOrigin?: OptionsRotationOriginValue;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Maximum length of the arrows in the vector plot.
     * The individual arrow length is computed between 0 and this value.
     */
    vectorLength?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotVennAnimationOptions {
    defer?: number;
}
export interface PlotVennClusterEventsOptions {
    /**
     * (Highcharts, Highmaps) Fires when the cluster point is clicked and
     * `drillToCluster` is enabled. One parameter, `event`, is passed to the
     * function. The default action is to zoom to the cluster points range. This
     * can be prevented by calling `event.preventDefault()`.
     */
    drillToCluster?: MarkerClusterDrillCallbackFunction;
}
/**
 * (Highcharts, Highmaps) Options for layout algorithm. Inside there are options
 * to change the type of the algorithm, gridSize, distance or iterations.
 */
export interface PlotVennClusterLayoutAlgorithmOptions {
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `distance` is a
     * maximum distance between point and cluster center so that this point will
     * be inside the cluster. The distance is either a number defining pixels or
     * a percentage defining a percentage of the plot area width.
     */
    distance?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to the `grid`, `gridSize` is a
     * size of a grid square element either as a number defining pixels, or a
     * percentage defining a percentage of the plot area width.
     */
    gridSize?: (number|string);
    /**
     * (Highcharts, Highmaps) When `type` is set to `kmeans`, `iterations` are
     * the number of iterations that this algorithm will be repeated to find
     * clusters positions.
     */
    iterations?: number;
    /**
     * (Highcharts, Highmaps) When `type` is set to `undefined` and there are
     * more visible points than the kmeansThreshold the `grid` algorithm is used
     * to find clusters, otherwise `kmeans`. It ensures good performance on
     * large datasets and better clusters arrangement after the zoom.
     */
    kmeansThreshold?: number;
    /**
     * (Highcharts, Highmaps) Type of the algorithm used to combine points into
     * a cluster. There are three available algorithms:
     *
     * 1) `grid` - grid-based clustering technique. Points are assigned to
     * squares of set size depending on their position on the plot area. Points
     * inside the grid square are combined into a cluster. The grid size can be
     * controlled by `gridSize` property (grid size changes at certain zoom
     * levels).
     *
     * 2) `kmeans` - based on K-Means clustering technique. In the first step,
     * points are divided using the grid method (distance property is a grid
     * size) to find the initial amount of clusters. Next, each point is
     * classified by computing the distance between each cluster center and that
     * point. When the closest cluster distance is lower than distance property
     * set by a user the point is added to this cluster otherwise is classified
     * as `noise`. The algorithm is repeated until each cluster center not
     * change its previous position more than one pixel. This technique is more
     * accurate but also more time consuming than the `grid` algorithm,
     * especially for big datasets.
     *
     * 3) `optimizedKmeans` - based on K-Means clustering technique. This
     * algorithm uses k-means algorithm only on the chart initialization or when
     * chart extremes have greater range than on initialization. When a chart is
     * redrawn the algorithm checks only clustered points distance from the
     * cluster center and rebuild it when the point is spaced enough to be
     * outside the cluster. It provides performance improvement and more stable
     * clusters position yet can be used rather on small and sparse datasets.
     *
     * By default, the algorithm depends on visible quantity of points and
     * `kmeansThreshold`. When there are more visible points than the
     * `kmeansThreshold` the `grid` algorithm is used, otherwise `kmeans`.
     *
     * The custom clustering algorithm can be added by assigning a callback
     * function as the type property. This function takes an array of
     * `processedXData`, `processedYData`, `processedXData` indexes and
     * `layoutAlgorithm` options as arguments and should return an object with
     * grouped data.
     *
     * The algorithm should return an object like that: (see online
     * documentation for example)
     *
     * `clusterId` (example above - unique id of a cluster or noise) is an array
     * of points belonging to a cluster. If the array has only one point or
     * fewer points than set in `cluster.minimumClusterSize` it won't be
     * combined into a cluster.
     */
    type?: (string|Function);
}
/**
 * (Highcharts, Highmaps) Options for marker clusters, the concept of sampling
 * the data values into larger blocks in order to ease readability and increase
 * performance of the JavaScript charts.
 *
 * Note: marker clusters module is not working with `boost` and
 * `draggable-points` modules.
 *
 * The marker clusters feature requires the marker-clusters.js file to be
 * loaded, found in the modules directory of the download package, or online at
 * code.highcharts.com/modules/marker-clusters.js.
 */
export interface PlotVennClusterOptions {
    /**
     * (Highcharts, Highmaps) When set to `false` prevent cluster overlapping -
     * this option works only when `layoutAlgorithm.type = "grid"`.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker animation.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highmaps) Options for the cluster data labels.
     */
    dataLabels?: DataLabelsOptions;
    /**
     * (Highcharts, Highmaps) Zoom the plot area to the cluster points range
     * when a cluster is clicked.
     */
    drillToCluster?: boolean;
    /**
     * (Highcharts, Highmaps) Whether to enable the marker-clusters module.
     */
    enabled?: boolean;
    events?: PlotVennClusterEventsOptions;
    /**
     * (Highcharts, Highmaps) Options for layout algorithm. Inside there are
     * options to change the type of the algorithm, gridSize, distance or
     * iterations.
     */
    layoutAlgorithm?: PlotVennClusterLayoutAlgorithmOptions;
    /**
     * (Highcharts, Highmaps) Options for the cluster marker.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The minimum amount of points to be combined into a
     * cluster. This value has to be greater or equal to 2.
     */
    minimumClusterSize?: number;
    states?: PlotVennClusterStatesOptions;
    /**
     * (Highcharts, Highmaps) An array defining zones within marker clusters.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-cluster-zone-{n}` class, or custom classed from the
     * `className` option.
     */
    zones?: Array<PlotVennClusterZonesOptions>;
}
export interface PlotVennClusterStatesHoverOptions {
    /**
     * (Highcharts, Highmaps) The fill color of the cluster marker in hover
     * state. When `undefined`, the series' or point's fillColor for normal
     * state is used.
     */
    fillColor?: ColorType;
}
export interface PlotVennClusterStatesOptions {
    hover?: PlotVennClusterStatesHoverOptions;
}
/**
 * (Highcharts, Highmaps) An array defining zones within marker clusters.
 *
 * In styled mode, the color zones are styled with the
 * `.highcharts-cluster-zone-{n}` class, or custom classed from the `className`
 * option.
 */
export interface PlotVennClusterZonesOptions {
    /**
     * (Highcharts, Highmaps) Styled mode only. A custom class name for the
     * zone.
     */
    className?: string;
    /**
     * (Highcharts, Highmaps) The value where the zone starts.
     */
    from?: number;
    /**
     * (Highcharts, Highmaps) Settings for the cluster marker belonging to the
     * zone.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highmaps) The value where the zone ends.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotVennDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotVennDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotVennDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) A Venn diagram displays all possible logical relations between a
 * collection of different sets. The sets are represented by circles, and the
 * relation between the sets are displayed by the overlap or lack of overlap
 * between them. The venn diagram is a special case of Euler diagrams, which can
 * also be displayed by this series type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `venn` series are defined in plotOptions.venn.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotVennOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotVennAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: string;
    borderDashStyle?: string;
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    brighten?: number;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highmaps) Options for marker clusters, the concept of
     * sampling the data values into larger blocks in order to ease readability
     * and increase performance of the JavaScript charts.
     *
     * Note: marker clusters module is not working with `boost` and
     * `draggable-points` modules.
     *
     * The marker clusters feature requires the marker-clusters.js file to be
     * loaded, found in the modules directory of the download package, or online
     * at code.highcharts.com/modules/marker-clusters.js.
     */
    cluster?: PlotVennClusterOptions;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotVennDataLabelsOptions|Array<PlotVennDataLabelsOptions>);
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    marker?: boolean;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) The width of each point on the x axis. For example in a
     * column chart with one value each day, the pointRange would be 1 day (= 24
     * * 3600
     *
     * * 1000 milliseconds). This is normally computed automatically, but this
     * option can be used to override the automatic value.
     */
    pointRange?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip. Overridable
     * properties are `headerFormat`, `pointFormat`, `yDecimals`, `xDateFormat`,
     * `yPrefix` and `ySuffix`. Unlike other series, in a scatter plot the
     * series.name by default shows in the headerFormat and point.x and point.y
     * in the pointFormat.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotVwapAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotVwapDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotVwapDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotVwapDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotVwapDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Volume Weighted Average Price indicator.
 *
 * This series requires `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `vwap` series are defined in plotOptions.vwap.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotVwapOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotVwapAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotVwapDataLabelsOptions|Array<PlotVwapDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotVwapDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotVwapParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotVwapParamsOptions {
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
    /**
     * (Highstock) The id of volume series which is mandatory. For example using
     * OHLC data, volumeSeriesID='volume' means the indicator will be calculated
     * using OHLC and volume values.
     */
    volumeSeriesID?: string;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotWaterfallAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotWaterfallDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotWaterfallDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotWaterfallDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotWaterfallDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface PlotWaterfallDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A waterfall chart displays sequentially introduced positive or
 * negative values in cumulative columns.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `waterfall` series are defined in plotOptions.waterfall.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotWaterfallOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotWaterfallAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts) The color of the border of each waterfall column.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highcharts) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) A name for the dash style to use for the line connecting the
     * columns of the waterfall series. Possible values: Dash, DashDot, Dot,
     * LongDash, LongDashDot, LongDashDotDot, ShortDash, ShortDashDot,
     * ShortDashDotDot, ShortDot, Solid
     *
     * In styled mode, the stroke dash-array can be set with the
     * `.highcharts-graph` class.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotWaterfallDataLabelsOptions|Array<PlotWaterfallDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotWaterfallDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) The draggable-points module allows points to be moved around
     * or modified in the chart. In addition to the options mentioned under the
     * `dragDrop` API structure, the module fires three events, point.dragStart,
     * point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts) The color of the line that connects columns in a waterfall
     * series.
     *
     * In styled mode, the stroke can be set with the `.highcharts-graph` class.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The width of the line connecting waterfall columns.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts) The color for the parts of the graph or points that are
     * below the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    /**
     * (Highcharts, Highstock) Whether to stack the values of each series on top
     * of each other. Possible values are `undefined` to disable, `"normal"` to
     * stack by value or `"percent"`.
     *
     * When stacking is enabled, data must be sorted in ascending X order.
     *
     * Some stacking options are related to specific series types. In the
     * streamgraph series type, the stacking option is set to `"stream"`. The
     * second one is `"overlap"`, which only applies to waterfall series.
     */
    stacking?: OptionsStackingValue;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) The color used specifically for positive point columns. When
     * not specified, the general series color is used.
     *
     * In styled mode, the waterfall colors can be set with the
     * `.highcharts-point-negative`, `.highcharts-sum` and
     * `.highcharts-intermediate-sum` classes.
     */
    upColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotWilliamsrAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotWilliamsrDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotWilliamsrDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotWilliamsrDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotWilliamsrDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Williams %R. This series requires the `linkedTo` option to be set
 * and should be loaded after the `stock/indicators/indicators.js`.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `williamsr` series are defined in plotOptions.williamsr.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotWilliamsrOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotWilliamsrAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotWilliamsrDataLabelsOptions|Array<PlotWilliamsrDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotWilliamsrDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of Williams %R series points.
     */
    params?: PlotWilliamsrParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of Williams %R series points.
 */
export interface PlotWilliamsrParamsOptions {
    /**
     * (Highstock) Period for Williams %R oscillator
     */
    period?: number;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotWindbarbAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotWindbarbDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotWindbarbDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotWindbarbDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotWindbarbDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highcharts, Highstock) Wind barbs are a convenient way to represent wind
 * speed and direction in one graphical form. Wind direction is given by the
 * stem direction, and wind speed by the number and shape of barbs.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `windbarb` series are defined in plotOptions.windbarb.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotWindbarbOptions {
    /**
     * (Highcharts, Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock) Allow this series' points to be selected by
     * clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed. The animation can also be set as a configuration
     * object. Please note that this option only applies to the initial
     * animation of the series itself. For other animations, see chart.animation
     * and the animation parameter under the API methods. The following
     * properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotWindbarbAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) For some series, there is a limit that shuts down
     * initial animation by default when the total number of points in the chart
     * is too high. For example, for a column chart and its derivatives,
     * animation does not run if there is more than 250 points totally. To
     * disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts, Highstock) An additional class name to apply to the series'
     * graphical elements. This option does not replace default class names of
     * the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Disable this option to allow series rendering in
     * the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock) The main color of the series. In line type series
     * it applies to the line and the point markers unless otherwise specified.
     * In bar type series it applies to the bars unless a color is specified per
     * point. The default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock) Styled mode only. A specific color index to use
     * for the series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) You can set the cursor to "pointer" if you have
     * click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock) A reserved subspace to store options and values
     * for customized functionality. Here you can add additional data for your
     * own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock) Data grouping options for the wind barbs. In
     * Highcharts, this requires the `modules/datagrouping.js` module to be
     * loaded. In Highstock, data grouping is included.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotWindbarbDataLabelsOptions|Array<PlotWindbarbDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotWindbarbDataSortingOptions);
    /**
     * (Highcharts) Depth of the columns in a 3D column chart.
     */
    depth?: number;
    /**
     * (Highcharts, Highstock) A description of the series to add to the screen
     * reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts) 3D columns only. The color of the edges. Similar to
     * `borderColor`, except it defaults to the same color as the column.
     */
    edgeColor?: ColorString;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts, Highstock) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock) General event handlers for the series items.
     * These event hooks can also be attached to the series at run time using
     * the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock) Determines whether the series should look for the
     * nearest point in both dimensions or just the x-dimension when hovering
     * the series. Defaults to `'xy'` for scatter series and `'x'` for most
     * other series. If the data has duplicate x-values, it is recommended to
     * set this to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts, Highstock) When set to `false` will prevent the series data
     * from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock) An array specifying which option maps to which
     * key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The line width of the wind barb symbols.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock) The color for the parts of the graph or points
     * that are below the threshold. Note that `zones` takes precedence over the
     * negative color. Using `negativeColor` is equivalent to applying a zone
     * with value of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The id of another series in the chart that the
     * wind barbs are projected on. When `null`, the wind symbols are drawn on
     * the X axis, but offset up or down by the `yOffset` setting.
     */
    onSeries?: (string|null);
    /**
     * (Highcharts, Highstock) Opacity of a series parts: line, fill (e.g. area)
     * and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock) Same as accessibility.pointDescriptionFormatter,
     * but for an individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, `pointInterval` defines the interval of the x values. For
     * example, if a series contains one value every decade starting from year
     * 0, set `pointInterval` to `10`. In true `datetime` axes, the
     * `pointInterval` is set in milliseconds.
     *
     * It can be also be combined with `pointIntervalUnit` to draw irregular
     * time intervals.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointInterval?: number;
    /**
     * (Highcharts, Highstock, Gantt) On datetime series, this allows for
     * setting the pointInterval to irregular time units, `day`, `month` and
     * `year`. A day is usually the same as 24 hours, but `pointIntervalUnit`
     * also takes the DST crossover into consideration when dealing with local
     * time. Combine this option with `pointInterval` to draw weeks, quarters, 6
     * months, 10 years etc.
     *
     * Please note that this options applies to the _series data_, not the
     * interval of the axis ticks, which is independent.
     */
    pointIntervalUnit?: OptionsPointIntervalUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) Possible values: `"on"`, `"between"`,
     * `number`.
     *
     * In a column chart, when pointPlacement is `"on"`, the point will not
     * create any padding of the X axis. In a polar column chart this means that
     * the first column points directly north. If the pointPlacement is
     * `"between"`, the columns will be laid out between ticks. This is useful
     * for example for visualising an amount between two points in time or in a
     * certain sector of a polar chart.
     *
     * Since Highcharts 3.0.2, the point placement can also be numeric, where 0
     * is on the axis value, -0.5 is between this value and the previous, and
     * 0.5 is between this value and the next. Unlike the textual options,
     * numeric point placement options won't affect axis padding.
     *
     * Note that pointPlacement needs a pointRange to work. For column series
     * this is computed, but for line-type series it needs to be set.
     *
     * For the `xrange` series type and gantt charts, if the Y axis is a
     * category axis, the `pointPlacement` applies to the Y axis rather than the
     * (typically datetime) X axis.
     *
     * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
     */
    pointPlacement?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The X axis range that each point is valid
     * for. This determines the width of the column. On a categorized axis, the
     * range will be 1 by default (one category unit). On linear and datetime
     * axes, the range will be computed as the distance between the two closest
     * data points.
     *
     * The default `null` means it is computed automatically, but this option
     * can be used to override the automatic value.
     *
     * This option is set by default to 1 if data sorting is enabled.
     */
    pointRange?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) If no x values are given for the points in
     * a series, pointStart defines on what value to start. For example, if a
     * series contains one yearly value starting from 1945, set pointStart to
     * 1945.
     */
    pointStart?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock) If true, a checkbox is displayed next to the
     * legend item to allow selecting the series. The state of the checkbox is
     * determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock) Whether to display this particular series or
     * series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock) If set to `true`, the accessibility module will
     * skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Sticky tracking of mouse events. When true, the
     * `mouseOut` event on a series isn't triggered until the mouse moves over
     * another series, or out of the plot area. When false, the `mouseOut` event
     * on a series is triggered when the mouse leaves the area around the
     * series' graph or markers. This also implies the tooltip when not shared.
     * When `stickyTracking` is false and `tooltip.shared` is false, the tooltip
     * will be hidden when moving the mouse between series. Defaults to true for
     * line and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) The Y axis value to serve as the base for the columns, for
     * distinguishing between values above and below a threshold. If `null`, the
     * columns extend from the padding Y axis minimum.
     */
    threshold?: (number|null);
    /**
     * (Highcharts, Highstock) A configuration object for the tooltip rendering
     * of each single series. Properties are inherited from tooltip, but only
     * the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock) Pixel length of the stems.
     */
    vectorLength?: number;
    /**
     * (Highcharts, Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highcharts, Highstock) Horizontal offset from the cartesian position, in
     * pixels. When the chart is inverted, this option allows translation like
     * yOffset in non inverted charts.
     */
    xOffset?: number;
    /**
     * (Highcharts, Highstock) Vertical offset from the cartesian position, in
     * pixels. The default value makes sure the symbols don't overlap the X axis
     * when `onSeries` is `null`, and that they don't overlap the linked series
     * when `onSeries` is given.
     */
    yOffset?: number;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotWmaAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotWmaDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotWmaDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotWmaDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotWmaDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Weighted moving average indicator (WMA). This series requires
 * `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `wma` series are defined in plotOptions.wma.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotWmaOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotWmaAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotWmaDataLabelsOptions|Array<PlotWmaDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotWmaDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotWmaParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotWmaParamsOptions {
    /**
     * (Highstock) The point index which indicator calculations will base. For
     * example using OHLC data, index=2 means the indicator will be calculated
     * using Low values.
     */
    index?: number;
    /**
     * (Highstock) The base period for indicator calculations. This is the
     * number of data points which are taken into account for the indicator
     * calculations.
     */
    period?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotWordcloudAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts) A word cloud is a visualization of a set of words, where the
 * size and placement of a word is determined by how it is weighted.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `wordcloud` series are defined in plotOptions.wordcloud.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotWordcloudOptions {
    /**
     * (Highcharts) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highcharts) If there is no space for a word on the playing field, then
     * this option will allow the playing field to be extended to fit the word.
     * If false then the word will be dropped from the visualization.
     *
     * NB! This option is currently not decided to be published in the API, and
     * is therefore marked as private.
     */
    allowExtendPlayingField?: boolean;
    /**
     * (Highcharts) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotWordcloudAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    clip?: boolean;
    /**
     * (Highcharts) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) When using automatic point colors pulled
     * from the global colors or series-specific plotOptions.column.colors
     * collections, this option determines whether the chart should receive one
     * color per series or one color per point.
     *
     * In styled mode, the `colors` or `series.colors` arrays are not supported,
     * and instead this option gives the points individual color class names on
     * the form `highcharts-color-{n}`.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When the series contains less points than
     * the crop threshold, all points are drawn, event if the points fall
     * outside the visible plot area at the current zoom. The advantage of
     * drawing all points (including markers and columns), is that animation is
     * performed on updates. On the other hand, when the series contains more
     * points than the crop threshold, the series data is cropped to only
     * contain points that fall within the plot area. The advantage of cropping
     * away invisible points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highcharts) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highcharts) 3D columns only. The width of the colored edges.
     */
    edgeWidth?: number;
    /**
     * (Highcharts) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts) An array specifying which option maps to which key in the
     * data point array. This makes it convenient to work with unstructured data
     * arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts) The word with the largest weight will have a font size equal
     * to this value. The font size of a word is the ratio between its weight
     * and the largest occuring weight, multiplied with the value of
     * maxFontSize.
     */
    maxFontSize?: number;
    /**
     * (Highcharts) A threshold determining the minimum font size that can be
     * applied to a word.
     */
    minFontSize?: number;
    /**
     * (Highcharts) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts) This option decides which algorithm is used for placement,
     * and rotation of a word. The choice of algorith is therefore a crucial
     * part of the resulting layout of the wordcloud. It is possible for users
     * to add their own custom placement strategies for use in word cloud. Read
     * more about it in our documentation
     */
    placementStrategy?: string;
    /**
     * (Highcharts) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts) Rotation options for the words in the wordcloud.
     */
    rotation?: PlotWordcloudRotationOptions;
    /**
     * (Highcharts) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highcharts) If set to `true`, the accessibility module will skip past
     * the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts) Spiral used for placing a word after the initial position
     * experienced a collision with either another word or the borders. It is
     * possible for users to add their own custom spiralling algorithms for use
     * in word cloud. Read more about it in our documentation
     */
    spiral?: string;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts) CSS styles for the words.
     */
    style?: CSSObject;
    /**
     * (Highcharts) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Rotation options for the words in the wordcloud.
 */
export interface PlotWordcloudRotationOptions {
    /**
     * (Highcharts) The smallest degree of rotation for a word.
     */
    from?: number;
    /**
     * (Highcharts) The number of possible orientations for a word, within the
     * range of `rotation.from` and `rotation.to`. Must be a number larger than
     * 0.
     */
    orientations?: number;
    /**
     * (Highcharts) The largest degree of rotation for a word.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed. The animation can also be set as a configuration object.
 * Please note that this option only applies to the initial animation of the
 * series itself. For other animations, see chart.animation and the animation
 * parameter under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotXrangeAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotXrangeDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotXrangeDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotXrangeDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Style options for the guide box. The guide box
 * has one state by default, the `default` state.
 */
export interface PlotXrangeDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock, Gantt) Style options for the guide box default
     * state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock, Gantt) The X-range series displays ranges on the X
 * axis, typically time intervals with a start and end date.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `xrange` series are defined in plotOptions.xrange.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotXrangeOptions {
    /**
     * (Highcharts, Highstock, Gantt) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highmaps) Whether all areas of the map defined in `mapData` should be
     * rendered. If `true`, areas which don't correspond to a data point, are
     * rendered as `null` points. If `false`, those areas are skipped.
     */
    allAreas?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Allow this series' points to be selected
     * by clicking on the graphic (columns, point markers, pie slices, map areas
     * etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Enable or disable the initial animation
     * when a series is displayed. The animation can also be set as a
     * configuration object. Please note that this option only applies to the
     * initial animation of the series itself. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotXrangeAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Gantt) For some series, there is a limit that
     * shuts down initial animation by default when the total number of points
     * in the chart is too high. For example, for a column chart and its
     * derivatives, animation does not run if there is more than 250 points
     * totally. To disable this cap, set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highcharts, Highstock, Gantt) The color of the border surrounding each
     * column or bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) The corner radius of the border
     * surrounding each column or bar.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width of the border surrounding each
     * column or bar. Defaults to `1` when there is room for a border, but to
     * `0` when the columns are so dense that a border would cover the next
     * column.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) When `true`, the columns will center in
     * the category, ignoring null or missing points. When `false`, space will
     * be reserved for null or missing points.
     */
    centerInCategory?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) An additional class name to apply to the
     * series' graphical elements. This option does not replace default class
     * names of the graphical element.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) Disable this option to allow series
     * rendering in the whole plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) The main color of the series. In line type
     * series it applies to the line and the point markers unless otherwise
     * specified. In bar type series it applies to the bars unless a color is
     * specified per point. The default value is pulled from the
     * `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps) When using dual or multiple color axes,
     * this number defines which colorAxis the particular series is connected
     * to. It refers to either the axis id or the index of the axis in the
     * colorAxis array, with 0 being the first. Set this option to false to
     * prevent a series from connecting to the default color axis.
     *
     * Since v7.2.0 the option can also be an axis id or an axis index instead
     * of a boolean flag.
     */
    colorAxis?: (boolean|number|string);
    /**
     * (Highcharts, Highstock, Gantt) In an X-range series, this option makes
     * all points of the same Y-axis category the same color.
     */
    colorByPoint?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Styled mode only. A specific color index
     * to use for the series, so its graphic representations are given the class
     * name `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highcharts, Highstock, Gantt) A series specific or series type specific
     * color set to apply instead of the global colors when colorByPoint is
     * true.
     */
    colors?: Array<(ColorString|GradientColorObject|PatternObject)>;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) You can set the cursor to "pointer" if you
     * have click events attached to the series, to signal to the user that the
     * points and lines can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highcharts, Highstock, Gantt) A reserved subspace to store options and
     * values for customized functionality. Here you can add additional data for
     * your own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock, Gantt) Name of the dash style to use for the
     * graph, or for some series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotXrangeDataLabelsOptions|Array<PlotXrangeDataLabelsOptions>);
    /**
     * (Highcharts, Highstock, Gantt) A description of the series to add to the
     * screen reader information about the series.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Gantt) The draggable-points module allows points
     * to be moved around or modified in the chart. In addition to the options
     * mentioned under the `dragDrop` API structure, the module fires three
     * events, point.dragStart, point.drag and point.drop.
     */
    dragDrop?: SeriesDragDropOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Enable or disable the mouse tracking for a
     * specific series. This includes point tooltips and click events on graphs
     * and points. For large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) General event handlers for the series
     * items. These event hooks can also be attached to the series at run time
     * using the `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether to group non-stacked columns or to
     * let them render independent of each other. Non-grouped columns will be
     * laid out individually and overlap each other.
     */
    grouping?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each value groups, in x
     * axis units.
     */
    groupPadding?: number;
    /**
     * (Highcharts) The spacing between columns on the Z Axis in a 3D chart.
     */
    groupZPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) When set to `false` will prevent the
     * series data from being included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highmaps) What property to join the `mapData` to the value data. For
     * example, if joinBy is "code", the mapData items with a specific code is
     * merged into the data with the same code. For maps loaded from GeoJSON,
     * the keys may be held in each point's `properties` object.
     *
     * The joinBy option can also be an array of two values, where the first
     * points to a key in the `mapData`, and the second points to another key in
     * the `data`.
     *
     * When joinBy is `null`, the map items are joined by their position in the
     * array, which performs much better in maps with many data points. This is
     * the recommended option if you are printing more than a thousand data
     * points and have a backend that can preprocess the data into a parallel
     * array of the mapData.
     */
    joinBy?: (string|Array<string>);
    /**
     * (Highcharts, Highstock, Gantt) An array specifying which option maps to
     * which key in the data point array. This makes it convenient to work with
     * unstructured data arrays from different sources.
     */
    keys?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The id of another series to link to.
     * Additionally, the value can be ":previous" to link to the previous
     * series. When two series are linked, only the first one appears in the
     * legend. Toggling the visibility of this also toggles the linked series.
     *
     * If master series uses data sorting and linked series does not have its
     * own sorting definition, the linked series will be sorted in the same
     * order as the master one.
     */
    linkedTo?: string;
    /**
     * (Highcharts, Highstock, Gantt) The maximum allowed pixel width for a
     * column, translated to the height of a bar in a bar chart. This prevents
     * the columns from becoming too wide when there is a small number of points
     * in the chart.
     */
    maxPointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The minimal height for a column or width
     * for a bar. By default, 0 values are not shown. To visualize a 0 (or close
     * to zero) point, set the minimal point length to a pixel value like 3\. In
     * stacked column charts, minPointLength might not be respected for tightly
     * packed values.
     */
    minPointLength?: number;
    /**
     * (Highstock) Options for the corresponding navigator series if
     * `showInNavigator` is `true` for this series. Available options are the
     * same as any series, documented at plotOptions and series.
     *
     * These options are merged with options in navigator.series, and will take
     * precedence if the same option is defined both places.
     */
    navigatorOptions?: PlotSeriesOptions;
    /**
     * (Highcharts, Highstock, Gantt) Opacity of a series parts: line, fill
     * (e.g. area) and dataLabels.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock, Gantt) A partial fill for each point, typically
     * used to visualize how much of a task is performed. The partial fill
     * object can be set either on series or point level.
     */
    partialFill?: PlotXrangePartialFillOptions;
    /**
     * (Highcharts, Highstock, Gantt) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highcharts, Highstock, Gantt) Same as
     * accessibility.pointDescriptionFormatter, but for an individual series.
     * Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highcharts, Highstock, Gantt) Padding between each column or bar, in x
     * axis units.
     */
    pointPadding?: number;
    pointRange?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * each column or bar point. When `null`, the width is calculated from the
     * `pointPadding` and `groupPadding`. The width effects the dimension that
     * is not based on the point value. For column series it is the hoizontal
     * length and for bar series it is the vertical length.
     */
    pointWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether to select the series initially. If
     * `showCheckbox` is true, the checkbox next to the series name in the
     * legend will be checked for a selected series.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to apply a drop shadow to the
     * graph line. Since 2.3 the shadow can be an object configuration
     * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Gantt) If true, a checkbox is displayed next to
     * the legend item to allow selecting the series. The state of the checkbox
     * is determined by the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to display this particular series
     * or series type in the legend. Standalone series are shown in legend by
     * default, and linked series are not. Since v7.2.0 it is possible to show
     * series that use colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) Whether or not to show the series in the navigator. Takes
     * precedence over navigator.baseSeries if defined.
     */
    showInNavigator?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) If set to `true`, the accessibility module
     * will skip past the points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Sticky tracking of mouse events. When
     * true, the `mouseOut` event on a series isn't triggered until the mouse
     * moves over another series, or out of the plot area. When false, the
     * `mouseOut` event on a series is triggered when the mouse leaves the area
     * around the series' graph or markers. This also implies the tooltip when
     * not shared. When `stickyTracking` is false and `tooltip.shared` is false,
     * the tooltip will be hidden when moving the mouse between series. Defaults
     * to true for line and area type series, but to false for columns, pies
     * etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A configuration object for the tooltip
     * rendering of each single series. Properties are inherited from tooltip,
     * but only the following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highcharts, Highstock, Gantt) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highcharts, Highstock, Gantt) A partial fill for each point, typically used
 * to visualize how much of a task is performed. The partial fill object can be
 * set either on series or point level.
 */
export interface PlotXrangePartialFillOptions {
    /**
     * (Highcharts, Highstock, Gantt) The fill color to be used for partial
     * fills. Defaults to a darker shade of the point color.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
}
/**
 * (Highstock) Enable or disable the initial animation when a series is
 * displayed. The animation can also be set as a configuration object. Please
 * note that this option only applies to the initial animation of the series
 * itself. For other animations, see chart.animation and the animation parameter
 * under the API methods. The following properties are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 *
 * - `duration`: The duration of the animation in milliseconds.
 *
 * - `easing`: Can be a string reference to an easing function set on the `Math`
 * object or a function. See the _Custom easing function_ demo below.
 *
 * Due to poor performance, animation is disabled in old IE browsers for several
 * chart types.
 */
export interface PlotZigzagAnimationOptions {
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface PlotZigzagDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface PlotZigzagDataLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotZigzagDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) Options for the series data sorting.
 */
export interface PlotZigzagDataSortingOptions {
    /**
     * (Highcharts, Highstock) Enable or disable data sorting for the series.
     * Use xAxis.reversed to change the sorting order.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Whether to allow matching points by name in an
     * update. If this option is disabled, points will be matched by order.
     */
    matchByName?: boolean;
    /**
     * (Highcharts, Highstock) Determines what data value should be used to sort
     * by.
     */
    sortKey?: string;
}
/**
 * (Highstock) Zig Zag indicator.
 *
 * This series requires `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `zigzag` series are defined in plotOptions.zigzag.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 */
export interface PlotZigzagOptions {
    /**
     * (Highstock) Accessibility options for a series.
     */
    accessibility?: SeriesAccessibilityOptionsObject;
    /**
     * (Highstock) Allow this series' points to be selected by clicking on the
     * graphic (columns, point markers, pie slices, map areas etc).
     *
     * The selected points can be handled by point select and unselect events,
     * or collectively by the getSelectedPoints function.
     *
     * And alternative way of selecting points is through dragging.
     */
    allowPointSelect?: boolean;
    /**
     * (Highstock) Enable or disable the initial animation when a series is
     * displayed. The animation can also be set as a configuration object.
     * Please note that this option only applies to the initial animation of the
     * series itself. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     *
     * - `duration`: The duration of the animation in milliseconds.
     *
     * - `easing`: Can be a string reference to an easing function set on the
     * `Math` object or a function. See the _Custom easing function_ demo below.
     *
     * Due to poor performance, animation is disabled in old IE browsers for
     * several chart types.
     */
    animation?: (boolean|PlotZigzagAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) For some series, there is a limit that shuts down initial
     * animation by default when the total number of points in the chart is too
     * high. For example, for a column chart and its derivatives, animation does
     * not run if there is more than 250 points totally. To disable this cap,
     * set `animationLimit` to `Infinity`.
     */
    animationLimit?: number;
    /**
     * (Highstock) Sets the color blending in the boost module.
     */
    boostBlending?: OptionsBoostBlendingValue;
    /**
     * (Highstock) Set the point threshold for when a series should enter boost
     * mode.
     *
     * Setting it to e.g. 2000 will cause the series to enter boost mode when
     * there are 2000 or more points in the series.
     *
     * To disable boosting on the series, set the `boostThreshold` to 0. Setting
     * it to 1 will force boosting.
     *
     * Note that the cropThreshold also affects this setting. When zooming in on
     * a series that has fewer points than the `cropThreshold`, all points are
     * rendered although outside the visible plot area, and the `boostThreshold`
     * won't take effect.
     */
    boostThreshold?: number;
    /**
     * (Highmaps) The border color of the map areas.
     *
     * In styled mode, the border stroke is given in the `.highcharts-point`
     * class.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of each map area.
     *
     * In styled mode, the border stroke width is given in the
     * `.highcharts-point` class.
     */
    borderWidth?: number;
    /**
     * (Highstock) An additional class name to apply to the series' graphical
     * elements. This option does not replace default class names of the
     * graphical element.
     */
    className?: string;
    /**
     * (Highstock) Disable this option to allow series rendering in the whole
     * plotting area.
     *
     * **Note:** Clipping should be always enabled when chart.zoomType is set
     */
    clip?: boolean;
    /**
     * (Highstock) The main color of the series. In line type series it applies
     * to the line and the point markers unless otherwise specified. In bar type
     * series it applies to the bars unless a color is specified per point. The
     * default value is pulled from the `options.colors` array.
     *
     * In styled mode, the color can be defined by the colorIndex option. Also,
     * the series color can be set with the `.highcharts-series`,
     * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
     * `.highcharts-series-{n}` class, or individual classes given by the
     * `className` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Styled mode only. A specific color index to use for the
     * series, so its graphic representations are given the class name
     * `highcharts-color-{n}`.
     */
    colorIndex?: number;
    /**
     * (Highcharts, Highstock, Highmaps) Determines what data value should be
     * used to calculate point color if `colorAxis` is used. Requires to set
     * `min` and `max` if some custom point property is used or if approximation
     * for data grouping is set to `'sum'`.
     */
    colorKey?: string;
    /**
     * (Highstock) Compare the values of the series against the first non-null,
     * non- zero value in the visible range. The y axis will show percentage or
     * absolute change depending on whether `compare` is set to `"percent"` or
     * `"value"`. When this is applied to multiple series, it allows comparing
     * the development of the series against each other. Adds a `change` field
     * to every point object.
     */
    compare?: string;
    /**
     * (Highstock) When compare is `percent`, this option dictates whether to
     * use 0 or 100 as the base of comparison.
     */
    compareBase?: (0|100);
    /**
     * (Highstock) Defines if comparison should start from the first point
     * within the visible range or should start from the first point **before**
     * the range.
     *
     * In other words, this flag determines if first point within the visible
     * range will have 0% (`compareStart=true`) or should have been already
     * calculated according to the previous point (`compareStart=false`).
     */
    compareStart?: boolean;
    /**
     * (Highstock) Whether to compare indicator to the main series values or
     * indicator values.
     */
    compareToMain?: boolean;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Gantt) Override Pathfinder connector options for a series. Requires
     * Highcharts Gantt to be loaded.
     */
    connectors?: SeriesConnectorsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When true, each point or column edge is
     * rounded to its nearest pixel in order to render sharp on screen. In some
     * cases, when there are a lot of densely packed columns, this leads to
     * visible difference in column widths or distance between columns. In these
     * cases, setting `crisp` to `false` may look better, even though each
     * column is rendered blurry.
     */
    crisp?: boolean;
    /**
     * (Highcharts, Highstock) When the series contains less points than the
     * crop threshold, all points are drawn, even if the points fall outside the
     * visible plot area at the current zoom. The advantage of drawing all
     * points (including markers and columns), is that animation is performed on
     * updates. On the other hand, when the series contains more points than the
     * crop threshold, the series data is cropped to only contain points that
     * fall within the plot area. The advantage of cropping away invisible
     * points is to increase performance on large series.
     */
    cropThreshold?: number;
    /**
     * (Highstock) You can set the cursor to "pointer" if you have click events
     * attached to the series, to signal to the user that the points and lines
     * can be clicked.
     *
     * In styled mode, the series cursor can be set with the same classes as
     * listed under series.color.
     */
    cursor?: (string|CursorValue);
    /**
     * (Highstock) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highstock) Name of the dash style to use for the graph, or for some
     * series types the outline of each shape.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under series.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highstock) Data grouping is the concept of sampling the data values into
     * larger blocks in order to ease readability and increase performance of
     * the JavaScript charts. Highstock by default applies data grouping when
     * the points become closer than a certain pixel value, determined by the
     * `groupPixelWidth` option.
     *
     * If data grouping is applied, the grouping information of grouped points
     * can be read from the Point.dataGroup. If point options other than the
     * data itself are set, for example `name` or `color` or custom properties,
     * the grouping logic doesn't know how to group it. In this case the options
     * of the first point instance are copied over to the group point. This can
     * be altered through a custom `approximation` callback function.
     */
    dataGrouping?: DataGroupingOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data
     * labels, appearing next to each data point.
     *
     * Since v6.2.0, multiple data labels can be applied to each single point by
     * defining them as an array of configs.
     *
     * In styled mode, the data labels can be styled with the
     * `.highcharts-data-label-box` and `.highcharts-data-label` class names
     * (see example).
     */
    dataLabels?: (PlotZigzagDataLabelsOptions|Array<PlotZigzagDataLabelsOptions>);
    /**
     * (Highcharts, Highstock) Options for the series data sorting.
     */
    dataSorting?: (DataSortingOptionsObject|PlotZigzagDataSortingOptions);
    /**
     * (Highstock) A description of the series to add to the screen reader
     * information about the series.
     */
    description?: string;
    /**
     * (Highstock) Enable or disable the mouse tracking for a specific series.
     * This includes point tooltips and click events on graphs and points. For
     * large datasets it improves performance.
     */
    enableMouseTracking?: boolean;
    /**
     * (Highstock) General event handlers for the series items. These event
     * hooks can also be attached to the series at run time using the
     * `Highcharts.addEvent` function.
     */
    events?: SeriesEventsOptionsObject;
    /**
     * (Highstock) Determines whether the series should look for the nearest
     * point in both dimensions or just the x-dimension when hovering the
     * series. Defaults to `'xy'` for scatter series and `'x'` for most other
     * series. If the data has duplicate x-values, it is recommended to set this
     * to `'xy'` to allow hovering over all points.
     *
     * Applies only to series types using nearest neighbor search (not direct
     * hover) for tooltip.
     */
    findNearestPointBy?: OptionsFindNearestPointByValue;
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use the Y extremes of the total
     * chart width or only the zoomed area when zooming in on parts of the X
     * axis. By default, the Y axis adjusts to the min and max of the visible
     * data. Cartesian series only.
     */
    getExtremesFromAll?: boolean;
    /**
     * (Highstock) When set to `false` will prevent the series data from being
     * included in any form of data export.
     *
     * Since version 6.0.0 until 7.1.0 the option was existing undocumented as
     * `includeInCSVExport`.
     */
    includeInDataExport?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
     * series as possible in a natural way, seeking to avoid other series. The
     * goal of this feature is to make the chart more easily readable, like if a
     * human designer placed the labels in the optimal position.
     *
     * The series labels currently work with series types having a `graph` or an
     * `area`.
     */
    label?: SeriesLabelOptionsObject;
    /**
     * (Highstock) The line marks the last price from all points.
     */
    lastPrice?: SeriesLastPriceOptionsObject;
    /**
     * (Highstock) The line marks the last price from visible range of points.
     */
    lastVisiblePrice?: SeriesLastVisiblePriceOptionsObject;
    /**
     * (Highcharts, Highstock) The SVG value used for the `stroke-linecap` and
     * `stroke-linejoin` of a line graph. Round means that lines are rounded in
     * the ends and bends.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The main series ID that indicator will be
     * based on. Required for this indicator.
     */
    linkedTo?: string;
    /**
     * (Highstock) Options for the point markers of line-like series. Properties
     * like `fillColor`, `lineColor` and `lineWidth` define the visual
     * appearance of the markers. Other series types, like column series, don't
     * have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highstock) The name of the series as shown in the legend, tooltip etc.
     * If not set, it will be based on a technical indicator type and default
     * params.
     */
    name?: string;
    /**
     * (Highstock) The color for the parts of the graph or points that are below
     * the threshold. Note that `zones` takes precedence over the negative
     * color. Using `negativeColor` is equivalent to applying a zone with value
     * of 0.
     */
    negativeColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Opacity of a series parts: line, fill (e.g. area) and
     * dataLabels.
     */
    opacity?: number;
    /**
     * (Highstock) Paramters used in calculation of regression series' points.
     */
    params?: PlotZigzagParamsOptions;
    /**
     * (Highstock) Properties for each single point.
     */
    point?: PlotSeriesPointOptions;
    /**
     * (Highstock) Same as accessibility.pointDescriptionFormatter, but for an
     * individual series. Overrides the chart wide configuration.
     */
    pointDescriptionFormatter?: Function;
    /**
     * (Highstock) Whether to select the series initially. If `showCheckbox` is
     * true, the checkbox next to the series name in the legend will be checked
     * for a selected series.
     */
    selected?: boolean;
    /**
     * (Highstock) Whether to apply a drop shadow to the graph line. Since 2.3
     * the shadow can be an object configuration containing `color`, `offsetX`,
     * `offsetY`, `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highstock) If true, a checkbox is displayed next to the legend item to
     * allow selecting the series. The state of the checkbox is determined by
     * the `selected` option.
     */
    showCheckbox?: boolean;
    /**
     * (Highstock) Whether to display this particular series or series type in
     * the legend. Standalone series are shown in legend by default, and linked
     * series are not. Since v7.2.0 it is possible to show series that use
     * colorAxis by setting this option to `true`.
     */
    showInLegend?: boolean;
    /**
     * (Highstock) If set to `true`, the accessibility module will skip past the
     * points in this series for keyboard navigation.
     */
    skipKeyboardNavigation?: boolean;
    /**
     * (Highcharts, Highstock) When this is true, the series will not cause the
     * Y axis to cross the zero plane (or threshold option) unless the data
     * actually crosses the plane.
     *
     * For example, if `softThreshold` is `false`, a series of 0, 1, 2, 3 will
     * make the Y axis show negative values according to the `minPadding`
     * option. If `softThreshold` is `true`, the Y axis starts at 0.
     */
    softThreshold?: boolean;
    states?: SeriesStatesOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highstock) Sticky tracking of mouse events. When true, the `mouseOut`
     * event on a series isn't triggered until the mouse moves over another
     * series, or out of the plot area. When false, the `mouseOut` event on a
     * series is triggered when the mouse leaves the area around the series'
     * graph or markers. This also implies the tooltip when not shared. When
     * `stickyTracking` is false and `tooltip.shared` is false, the tooltip will
     * be hidden when moving the mouse between series. Defaults to true for line
     * and area type series, but to false for columns, pies etc.
     *
     * **Note:** The boost module will force this option because of technical
     * limitations.
     */
    stickyTracking?: boolean;
    /**
     * (Highcharts, Highstock) The threshold, also called zero level or base
     * level. For line type series this is only used in conjunction with
     * negativeColor.
     */
    threshold?: number;
    /**
     * (Highstock) A configuration object for the tooltip rendering of each
     * single series. Properties are inherited from tooltip, but only the
     * following properties can be defined on a series level.
     */
    tooltip?: SeriesTooltipOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When a series contains a data array that
     * is longer than this, only one dimensional arrays of numbers, or two
     * dimensional arrays with x and y values are allowed. Also, only the first
     * point is tested, and the rest are assumed to be the same format. This
     * saves expensive data checking and indexing in long series. Set it to `0`
     * disable.
     *
     * Note: In boost mode turbo threshold is forced. Only array of numbers or
     * two dimensional arrays are allowed.
     */
    turboThreshold?: number;
    /**
     * (Highstock) Set the initial visibility of the series.
     */
    visible?: boolean;
    /**
     * (Highmaps) Define the z index of the series.
     */
    zIndex?: number;
    /**
     * (Highcharts, Highstock) Defines the Axis on which the zones are applied.
     */
    zoneAxis?: string;
    /**
     * (Highcharts, Highstock) An array defining zones within a series. Zones
     * can be applied to the X axis, Y axis or Z axis for bubbles, according to
     * the `zoneAxis` option. The zone definitions have to be in ascending order
     * regarding to the value.
     *
     * In styled mode, the color zones are styled with the
     * `.highcharts-zone-{n}` class, or custom classed from the `className`
     * option (view live demo).
     */
    zones?: Array<SeriesZonesOptionsObject>;
}
/**
 * (Highstock) Paramters used in calculation of regression series' points.
 */
export interface PlotZigzagParamsOptions {
    /**
     * (Highstock) The threshold for the value change.
     *
     * For example deviation=1 means the indicator will ignore all price
     * movements less than 1%.
     */
    deviation?: number;
    /**
     * (Highstock) The point index which indicator calculations will base - high
     * value.
     *
     * For example using OHLC data, index=1 means the indicator will be
     * calculated using High values.
     */
    highIndex?: number;
    /**
     * (Highstock) The point index which indicator calculations will base - low
     * value.
     *
     * For example using OHLC data, index=2 means the indicator will be
     * calculated using Low values.
     */
    lowIndex?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Accessibility options for a data point.
 */
export interface PointAccessibilityOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) Provide a description of the data point,
     * announced to screen readers.
     */
    description?: string;
}
/**
 * Common information for a click event on a series point.
 */
export interface PointClickEventObject extends PointerEventObject {
    /**
     * Clicked point.
     */
    point: Point;
}
/**
 * Contains information about a points new values.
 */
export interface PointDragDropObject {
    /**
     * New values.
     */
    newValues: Dictionary<number>;
    /**
     * Updated point.
     */
    point: Point;
}
/**
 * Contains common information for a drag event on series points.
 */
export interface PointDragEventObject {
    /**
     * New points during drag.
     */
    newPoints: Dictionary<PointDragDropObject>;
    /**
     * Original data.
     */
    origin: DragDropPositionObject;
    /**
     * Prevent default drag action.
     */
    preventDefault: Function;
    /**
     * Target point that caused the event.
     */
    target: Point;
    /**
     * Event type.
     */
    type: "drag";
}
/**
 * Contains common information for a drag event on series point.
 */
export interface PointDragStartEventObject extends MouseEvent {
    /**
     * Data property being dragged.
     */
    updateProp?: string;
}
/**
 * Contains common information for a drop event on series points.
 */
export interface PointDropEventObject {
    /**
     * New point after drag if only a single one.
     */
    newPoint?: PointDragDropObject;
    /**
     * New point id after drag if only a single one.
     */
    newPointId?: string;
    /**
     * New points after drop.
     */
    newPoints: Dictionary<PointDragDropObject>;
    /**
     * Number of new points.
     */
    numNewPoints: number;
    /**
     * Original data.
     */
    origin: DragDropPositionObject;
    /**
     * Prevent default drop action.
     */
    preventDefault: Function;
    /**
     * Target point that caused the event.
     */
    target: Point;
    /**
     * Event type.
     */
    type: "drop";
}
/**
 * One position in relation to an axis.
 */
export interface PointerAxisCoordinateObject {
    /**
     * Related axis.
     */
    axis: Axis;
    /**
     * Axis value.
     */
    value: number;
}
/**
 * Positions in terms of axis values.
 */
export interface PointerAxisCoordinatesObject {
    /**
     * Positions on the x-axis.
     */
    xAxis: Array<PointerAxisCoordinateObject>;
    /**
     * Positions on the y-axis.
     */
    yAxis: Array<PointerAxisCoordinateObject>;
}
/**
 * Pointer coordinates.
 */
export interface PointerCoordinatesObject {
    chartX: number;
    chartY: number;
}
/**
 * A native browser mouse or touch event, extended with position information
 * relative to the Chart.container.
 */
export interface PointerEventObject extends PointerEvent {
    /**
     * The X coordinate of the pointer interaction relative to the chart.
     */
    chartX: number;
    /**
     * The Y coordinate of the pointer interaction relative to the chart.
     */
    chartY: number;
}
/**
 * (Highcharts, Highstock, Gantt) The individual point events.
 */
export interface PointEventsOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) Fires when a point is clicked. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     *
     * If the `series.allowPointSelect` option is true, the default action for
     * the point's click event is to toggle the point's select state. Returning
     * `false` cancels this action.
     */
    click?: PointClickCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) Callback that fires while dragging a
     * point. The mouse event is passed in as parameter. The original data can
     * be accessed from `e.origin`, and the new point values can be accessed
     * from `e.newPoints`. If there is only a single point being updated, it can
     * be accessed from `e.newPoint` for simplicity, and its ID can be accessed
     * from `e.newPointId`. The `this` context is the point being dragged. To
     * stop the default drag action, return false. See drag and drop options.
     */
    drag?: PointDragCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) Callback that fires when starting to drag
     * a point. The mouse event object is passed in as an argument. If a drag
     * handle is used, `e.updateProp` is set to the data property being dragged.
     * The `this` context is the point. See drag and drop options.
     */
    dragStart?: PointDragStartCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) Callback that fires when the point is
     * dropped. The parameters passed are the same as for drag. To stop the
     * default drop action, return false. See drag and drop options.
     */
    drop?: PointDropCallbackFunction;
    /**
     * (Highcharts) Fires when the legend item belonging to the pie point
     * (slice) is clicked. The `this` keyword refers to the point itself. One
     * parameter, `event`, is passed to the function, containing common event
     * information. The default action is to toggle the visibility of the point.
     * This can be prevented by calling `event.preventDefault()`.
     */
    legendItemClick?: PointLegendItemClickCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) Fires when the mouse leaves the area close
     * to the point. One parameter, `event`, is passed to the function,
     * containing common event information.
     */
    mouseOut?: PointMouseOutCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) Fires when the mouse enters the area close
     * to the point. One parameter, `event`, is passed to the function,
     * containing common event information.
     */
    mouseOver?: PointMouseOverCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) Fires when the point is removed using the
     * `.remove()` method. One parameter, `event`, is passed to the function.
     * Returning `false` cancels the operation.
     */
    remove?: PointRemoveCallbackFunction;
    /**
     * Fires when the point is selected either programmatically or following a
     * click on the point. One parameter, `event`, is passed to the function.
     * Returning `false` cancels the operation.
     */
    select?: PointSelectCallbackFunction;
    /**
     * Fires when the point is unselected either programmatically or following a
     * click on the point. One parameter, `event`, is passed to the function.
     * Returning `false` cancels the operation.
     */
    unselect?: PointUnselectCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) Fires when the point is updated
     * programmatically through the `.update()` method. One parameter, `event`,
     * is passed to the function. The new point options can be accessed through
     * `event.options`. Returning `false` cancels the operation.
     */
    update?: PointUpdateCallbackFunction;
}
/**
 * Information about the select/unselect event.
 */
export interface PointInteractionEventObject extends Event {
    accumulate: boolean;
}
/**
 * Configuration hash for the data label and tooltip formatters.
 */
export interface PointLabelObject {
    /**
     * The point's current color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * The point's current color index, used in styled mode instead of `color`.
     * The color index is inserted in class names used for styling.
     */
    colorIndex: number;
    /**
     * The name of the related point.
     */
    key?: string;
    /**
     * The percentage for related points in a stacked series or pies.
     */
    percentage: number;
    /**
     * The related point. The point name, if defined, is available through
     * `this.point.name`.
     */
    point: Point;
    /**
     * The related series. The series name is available through
     * `this.series.name`.
     */
    series: Series;
    /**
     * The total of values in either a stack for stacked series, or a pie in a
     * pie series.
     */
    total?: number;
    /**
     * For categorized axes this property holds the category name for the point.
     * For other axes it holds the X value.
     */
    x?: (number|string);
    /**
     * The y value of the point.
     */
    y?: number;
}
/**
 * Information about the legend click event.
 */
export interface PointLegendItemClickEventObject {
    /**
     * Related browser event.
     */
    browserEvent: PointerEvent;
    /**
     * Prevent the default action of toggle the visibility of the point.
     */
    preventDefault: Function;
    /**
     * Related point.
     */
    target: Point;
    /**
     * Event type.
     */
    type: "legendItemClick";
}
/**
 * (Highcharts, Highstock) Options for the point markers of line-like series.
 */
export interface PointMarkerOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps) Animation for the marker as it moves
     * between values. Set to `false` to disable animation. Defaults to `{
     * duration: 50 }`.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps) The color of the marker.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Enable or disable the point marker. If
     * `undefined`, the markers are hidden when the data is dense, and shown for
     * more widespread data points.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) The threshold for how dense the point markers
     * should be before they are hidden, given that `enabled` is not defined.
     * The number indicates the horizontal distance between the two closest
     * points in the series, as multiples of the `marker.radius`. In other
     * words, the default value of 2 means points are hidden if overlapping
     * horizontally.
     */
    enabledThreshold?: number;
    /**
     * (Highcharts, Highstock) The fill color of the point marker. When
     * `undefined`, the series' or point's color is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The fill opacity of the bubble markers.
     */
    fillOpacity?: number;
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `width` must also be set.
     */
    height?: number;
    /**
     * (Highcharts, Highstock) The color of the point marker's outline. When
     * `undefined`, the series' or point's color is used.
     */
    lineColor?: (string|ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) The radius of the point marker.
     */
    radius?: number;
    /**
     * (Highcharts, Highstock) States for a single point marker.
     */
    states?: PointStatesOptionsObject;
    /**
     * (Highcharts, Highstock) A predefined shape or symbol for the marker. When
     * undefined, the symbol is pulled from options.symbols. Other possible
     * values are `'circle'`, `'square'`,`'diamond'`, `'triangle'` and
     * `'triangle-down'`.
     *
     * Additionally, the URL to a graphic can be given on this form:
     * `'url(graphic.png)'`. Note that for the image to be applied to exported
     * charts, its URL needs to be accessible by the export server.
     *
     * Custom callbacks for symbol path generation can also be added to
     * `Highcharts.SVGRenderer.prototype.symbols`. The callback is then used by
     * its method name, as shown in the demo.
     */
    symbol?: (string|SymbolKeyValue);
    /**
     * (Highcharts, Highstock) Image markers only. Set the image width
     * explicitly. When using this option, a `height` must also be set.
     */
    width?: number;
}
/**
 * The generic point options for all series.
 *
 * In TypeScript you have to extend `PointOptionsObject` with an additional
 * declaration to allow custom data options: (see online documentation for
 * example)
 */
export interface PointOptionsObject {
    /**
     * (Highcharts) Accessibility options for a data point.
     */
    accessibility?: PointAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock) The color of the border surrounding the column or
     * bar.
     *
     * In styled mode, the border stroke can be set with the `.highcharts-point`
     * rule.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The width of the border surrounding the column or
     * bar.
     *
     * In styled mode, the stroke width can be set with the `.highcharts-point`
     * rule.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The dash style of the box.
     */
    boxDashStyle?: DashStyleValue;
    /**
     * (Highcharts, Gantt) An additional, individual class name for the data
     * point's graphic representation.
     */
    className?: string;
    /**
     * (Highstock) The closing value of each data point.
     */
    close?: number;
    /**
     * (Highcharts, Highstock, Gantt) Individual color for the point. By default
     * the color is pulled from the global `colors` array.
     *
     * In styled mode, the `color` option doesn't take effect. Instead, use
     * `colorIndex`.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Gantt) A specific color index to use for the point, so its
     * graphic representations are given the class name `highcharts-color-{n}`.
     * In styled mode this will change the color of the graphic. In non-styled
     * mode, the color by is set by the `fill` attribute, so the change in class
     * name won't have a visual effect by default.
     */
    colorIndex?: number;
    /**
     * (Highcharts) Serves a purpose only if a `colorAxis` object is defined in
     * the chart options. This value will decide which color the point gets from
     * the scale of the colorAxis.
     */
    colorValue?: number;
    /**
     * (Highcharts, Highstock) Color of the line that connects the dumbbell
     * point's values. By default it is the series' color.
     */
    connectorColor?: string;
    /**
     * (Highcharts, Highstock) Pixel width of the line that connects the
     * dumbbell point's values.
     */
    connectorWidth?: number;
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) A name for the dash style to use for the column or bar.
     * Overrides dashStyle on the series.
     *
     * In styled mode, the stroke dash-array can be set with the same classes as
     * listed under data.color.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptions|DataLabelsOptions|SeriesNetworkgraphDataLabelsOptionsObject|SeriesPackedBubbleDataLabelsOptionsObject|SeriesPieDataLabelsOptionsObject|
SeriesSunburstDataLabelsOptionsObject|Array<DataLabelsOptions>|Array<SeriesNetworkgraphDataLabelsOptionsObject>|Array<SeriesPackedBubbleDataLabelsOptionsObject>|
Array<SeriesSunburstDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point.
     */
    description?: string;
    /**
     * (Highcharts, Highstock) The wind direction in degrees, where 0 is north
     * (pointing towards south).
     */
    direction?: number;
    /**
     * (Highcharts) Point specific options for the draggable-points module.
     * Overrides options on `series.dragDrop`.
     */
    dragDrop?: SeriesLineDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) The individual point events.
     */
    events?: PointEventsOptionsObject;
    /**
     * (Highstock) The fill color of an individual flag. By default it inherits
     * from the series color.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The node that the link runs from.
     */
    from?: string;
    /**
     * (Highcharts, Highstock) The high or maximum value for each data point.
     */
    high?: number;
    /**
     * (Highcharts, Highstock, Gantt) An id for the point. This can be used
     * after render time to get a pointer to the point object through
     * `chart.get()`.
     */
    id?: string;
    /**
     * (Highcharts) The inner radius of an individual point in a solid gauge.
     * Can be given as a number (pixels) or percentage string.
     */
    innerRadius?: (number|string);
    /**
     * (Highcharts) When this property is true, the points acts as a summary
     * column for the values added or substracted since the last intermediate
     * sum, or since the start of the series. The `y` value is ignored.
     */
    isIntermediateSum?: boolean;
    /**
     * (Highcharts) When this property is true, the point display the total sum
     * across the entire series. The `y` value is ignored.
     */
    isSum?: boolean;
    /**
     * (Highcharts) The label of event.
     */
    label?: string;
    /**
     * (Highcharts) The rank for this point's data label in case of collision.
     * If two data labels are about to overlap, only the one with the highest
     * `labelrank` will be drawn.
     */
    labelrank?: number;
    /**
     * (Highcharts) The sequential index of the data point in the legend.
     */
    legendIndex?: number;
    /**
     * (Highcharts, Highstock) The length of the vector. The rendered length
     * will relate to the `vectorLength` setting.
     */
    length?: number;
    /**
     * (Highcharts, Highstock) The low or minimum value for each data point.
     */
    low?: number;
    /**
     * (Highcharts, Highstock) Color of the start markers in a dumbbell graph.
     */
    lowColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts) The median for each data point. This is drawn as a line
     * through the middle area of the box.
     */
    median?: number;
    /**
     * (Highcharts) The dash style of the median.
     */
    medianDashStyle?: DashStyleValue;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels, etc.
     */
    name?: (number|string);
    /**
     * (Highstock) The opening value of each data point.
     */
    open?: number;
    /**
     * (Highcharts) Only for treemap. Use this option to build a tree structure.
     * The value should be the id of the point which is the parent. If no points
     * has a matching id, or this option is undefined, then the parent will be
     * set to the root.
     */
    parent?: string;
    /**
     * (Highcharts, Highmaps) Point padding for a single point.
     */
    pointPadding?: number;
    /**
     * (Highcharts, Highstock, Gantt) A pixel value specifying a fixed width for
     * the column or bar. Overrides pointWidth on the series. The width effects
     * the dimension that is not based on the point value.
     */
    pointWidth?: number;
    /**
     * (Highcharts) The lower quartile for each data point. This is the bottom
     * of the box.
     */
    q1?: number;
    /**
     * (Highcharts) The higher quartile for each data point. This is the top of
     * the box.
     */
    q3?: number;
    /**
     * (Highcharts) The outer radius of an individual point in a solid gauge.
     * Can be given as a number (pixels) or percentage string.
     */
    radius?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) The set or sets the options will be applied to. If a single
     * entry is defined, then it will create a new set. If more than one entry
     * is defined, then it will define the overlap between the sets in the
     * array.
     */
    sets?: Array<string>;
    /**
     * (Highcharts) Whether to display a slice offset from the center.
     */
    sliced?: boolean;
    /**
     * (Highcharts) The dash style of the stem.
     */
    stemDashStyle?: DashStyleValue;
    /**
     * (Highcharts) The target value of a point.
     */
    target?: number;
    /**
     * (Highcharts) Individual target options for each point.
     */
    targetOptions?: SeriesBulletDataTargetOptions;
    /**
     * (Highstock) The longer text to be shown in the flag's tooltip.
     */
    text?: string;
    /**
     * (Highstock) The short text to be shown on the flag.
     */
    title?: string;
    /**
     * (Highcharts) The node that the link runs to.
     */
    to?: string;
    /**
     * (Highcharts, Highstock) The wind speed in meters per second.
     */
    value?: (number|null);
    /**
     * (Highcharts) The weighting of a word. The weight decides the relative
     * size of a word compared to the rest of the collection.
     */
    weight?: number;
    /**
     * (Highcharts) The dash style of the whiskers.
     */
    whiskerDashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock) The x value of the point. For datetime axes, the
     * X value is the timestamp in milliseconds since 1970.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) The y value of the point.
     */
    y?: (number|null);
    /**
     * (Highcharts) The relative width for each column. On a category axis, the
     * widths are distributed so they sum up to the X axis length. On linear and
     * datetime axes, the columns will be laid out from the X value and Z units
     * along the axis.
     */
    z?: (number|null);
}
/**
 * (Highcharts, Highstock) The hover state for a single point marker.
 */
export interface PointStatesHoverOptionsObject {
    /**
     * (Highcharts, Highstock) Animation when hovering over the marker.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) Enable or disable the point marker.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) The fill color of the marker in hover state. When
     * `undefined`, the series' or point's fillColor for normal state is used.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) Set the marker's fixed height on hover state.
     */
    height?: (number|undefined);
    /**
     * (Highcharts, Highstock) The number of pixels to increase the height of
     * the hovered point.
     */
    heightPlus?: (number|undefined);
    /**
     * (Highcharts, Highstock) The color of the point marker's outline. When
     * `undefined`, the series' or point's lineColor for normal state is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The width of the point marker's outline. When
     * `undefined`, the series' or point's lineWidth for normal state is used.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) The additional line width for a hovered point.
     */
    lineWidthPlus?: (number|undefined);
    /**
     * (Highcharts, Highstock) The radius of the point marker. In hover state,
     * it defaults to the normal state's radius + 2 as per the radiusPlus
     * option.
     */
    radius?: number;
    /**
     * (Highcharts, Highstock) The number of pixels to increase the radius of
     * the hovered point.
     */
    radiusPlus?: number;
    /**
     * (Highcharts, Highmaps) Set the marker's fixed width on hover state.
     */
    width?: (number|undefined);
    /**
     * (Highcharts, Highstock) The number of pixels to increase the width of the
     * hovered point.
     */
    widthPlus?: (number|undefined);
}
/**
 * (Highcharts) The opposite state of a hover for a single point node. Applied
 * to all not connected nodes to the hovered one.
 */
export interface PointStatesInactiveOptionsObject {
    /**
     * (Highcharts) Animation when not hovering over the node.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highcharts, Highstock) The normal state of a single point marker. Currently
 * only used for setting animation when returning to normal state from hover.
 */
export interface PointStatesNormalOptionsObject {
    /**
     * (Highcharts, Highstock) Animation when returning to normal state after
     * hovering.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
}
/**
 * (Highcharts, Highstock) States for a single point marker.
 */
export interface PointStatesOptionsObject {
    /**
     * (Highcharts, Highstock) The hover state for a single point marker.
     */
    hover?: PointStatesHoverOptionsObject;
    /**
     * (Highcharts) The opposite state of a hover for a single point node.
     * Applied to all not connected nodes to the hovered one.
     */
    inactive?: PointStatesInactiveOptionsObject;
    /**
     * (Highcharts, Highstock) The normal state of a single point marker.
     * Currently only used for setting animation when returning to normal state
     * from hover.
     */
    normal?: PointStatesNormalOptionsObject;
    /**
     * (Highcharts, Highstock) The appearance of the point marker when selected.
     * In order to allow a point to be selected, set the
     * `series.allowPointSelect` option to true.
     */
    select?: PointStatesSelectOptionsObject;
}
/**
 * (Highcharts, Highstock) The appearance of the point marker when selected. In
 * order to allow a point to be selected, set the `series.allowPointSelect`
 * option to true.
 */
export interface PointStatesSelectOptionsObject {
    /**
     * (Highcharts, Highstock) Enable or disable visible feedback for selection.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) The fill color of the point marker.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highmaps) Set the marker's fixed height on select state.
     */
    height?: (number|undefined);
    /**
     * (Highcharts, Highstock) The number of pixels to increase the height of
     * the hovered point.
     */
    heightPlus?: (number|undefined);
    /**
     * (Highcharts, Highstock) The color of the point marker's outline. When
     * `undefined`, the series' or point's color is used.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The width of the point marker's outline.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) The radius of the point marker. In hover state,
     * it defaults to the normal state's radius + 2.
     */
    radius?: number;
    /**
     * (Highcharts, Highmaps) Set the marker's fixed width on select state.
     */
    width?: (number|undefined);
    /**
     * (Highcharts, Highstock) The number of pixels to increase the width of the
     * hovered point.
     */
    widthPlus?: (number|undefined);
}
/**
 * Information about the update event.
 */
export interface PointUpdateEventObject extends Event {
    /**
     * Options data of the update event.
     */
    options: PointOptionsType;
}
/**
 * An object containing `x` and `y` properties for the position of an element.
 */
export interface PositionObject {
    /**
     * X position of the element.
     */
    x: number;
    /**
     * Y position of the element.
     */
    y: number;
}
/**
 * Defines the center position and the radius for a gradient.
 */
export interface RadialGradientColorObject {
    /**
     * Center horizontal position relative to the shape. Float ranges 0-1.
     */
    cx: number;
    /**
     * Center vertical position relative to the shape. Float ranges 0-1.
     */
    cy: number;
    /**
     * Radius relative to the shape. Float ranges 0-1.
     */
    r: number;
}
/**
 * Describes a range.
 */
export interface RangeObject {
    /**
     * Maximum number of the range.
     */
    max: number;
    /**
     * Minimum number of the range.
     */
    min: number;
}
/**
 * (Highstock, Gantt) Positioning for the button row.
 */
export interface RangeSelectorButtonPositionOptions {
    /**
     * (Highstock, Gantt) The alignment of the input box. Allowed properties are
     * `left`, `center`, `right`.
     */
    align?: AlignValue;
    /**
     * (Highstock, Gantt) X offset of the button row.
     */
    x?: number;
    /**
     * (Highstock, Gantt) Y offset of the button row.
     */
    y?: number;
}
export interface RangeSelectorButtonsEventsOptions {
    /**
     * (Highstock, Gantt) Fires when clicking on the rangeSelector button. One
     * parameter, event, is passed to the function, containing common event
     * information. (see online documentation for example)
     *
     * Return false to stop default button's click action.
     */
    click?: RangeSelectorClickCallbackFunction;
}
/**
 * (Highstock, Gantt) An array of configuration objects for the buttons.
 *
 * Defaults to: (see online documentation for example)
 */
export interface RangeSelectorButtonsOptions {
    /**
     * (Highstock, Gantt) How many units of the defined type the button should
     * span. If `type` is "month" and `count` is 3, the button spans three
     * months.
     */
    count?: number;
    /**
     * (Highstock) A custom data grouping object for each button.
     */
    dataGrouping?: DataGroupingOptionsObject;
    events?: RangeSelectorButtonsEventsOptions;
    /**
     * (Highstock, Gantt) Additional range (in milliseconds) added to the end of
     * the calculated time span.
     */
    offsetMax?: number;
    /**
     * (Highstock, Gantt) Additional range (in milliseconds) added to the start
     * of the calculated time span.
     */
    offsetMin?: number;
    /**
     * (Highstock, Gantt) When buttons apply dataGrouping on a series, by
     * default zooming in/out will deselect buttons and unset dataGrouping.
     * Enable this option to keep buttons selected when extremes change.
     */
    preserveDataGrouping?: boolean;
    /**
     * (Highstock, Gantt) The text for the button itself.
     */
    text?: string;
    /**
     * (Highstock, Gantt) Defined the time span for the button. Can be one of
     * `millisecond`, `second`, `minute`, `hour`, `day`, `week`, `month`,
     * `year`, `ytd`, and `all`.
     */
    type?: RangeSelectorButtonTypeValue;
}
/**
 * (Highstock, Gantt) Positioning for the input boxes. Allowed properties are
 * `align`, `x` and `y`.
 */
export interface RangeSelectorInputPositionOptions {
    /**
     * (Highstock, Gantt) The alignment of the input box. Allowed properties are
     * `left`, `center`, `right`.
     */
    align?: AlignValue;
    /**
     * (Highstock, Gantt) X offset of the input row.
     */
    x?: number;
    /**
     * (Highstock, Gantt) Y offset of the input row.
     */
    y?: number;
}
/**
 * (Highstock, Gantt) The range selector is a tool for selecting ranges to
 * display within the chart. It provides buttons to select preconfigured ranges
 * in the chart, like 1 day, 1 week, 1 month etc. It also provides input boxes
 * where min and max dates can be manually input.
 */
export interface RangeSelectorOptions {
    /**
     * (Highstock, Gantt) Whether to enable all buttons from the start. By
     * default buttons are only enabled if the corresponding time range exists
     * on the X axis, but enabling all buttons allows for dynamically loading
     * different time ranges.
     */
    allButtonsEnabled?: boolean;
    /**
     * (Highstock, Gantt) Positioning for the button row.
     */
    buttonPosition?: RangeSelectorButtonPositionOptions;
    /**
     * (Highstock, Gantt) An array of configuration objects for the buttons.
     *
     * Defaults to: (see online documentation for example)
     */
    buttons?: Array<RangeSelectorButtonsOptions>;
    /**
     * (Highstock, Gantt) The space in pixels between the buttons in the range
     * selector.
     */
    buttonSpacing?: number;
    /**
     * (Highstock, Gantt) A collection of attributes for the buttons. The object
     * takes SVG attributes like `fill`, `stroke`, `stroke-width`, as well as
     * `style`, a collection of CSS properties for the text.
     *
     * The object can also be extended with states, so you can set
     * presentational options for `hover`, `select` or `disabled` button states.
     *
     * CSS styles for the text label.
     *
     * In styled mode, the buttons are styled by the
     * `.highcharts-range-selector-buttons .highcharts-button` rule with its
     * different states.
     */
    buttonTheme?: SVGAttributes;
    /**
     * (Highstock, Gantt) Enable or disable the range selector.
     */
    enabled?: boolean;
    /**
     * (Highstock, Gantt) When the rangeselector is floating, the plot area does
     * not reserve space for it. This opens for positioning anywhere on the
     * chart.
     */
    floating?: boolean;
    /**
     * (Highstock, Gantt) The border color of the date input boxes.
     */
    inputBoxBorderColor?: ColorString;
    /**
     * (Highstock, Gantt) The pixel height of the date input boxes.
     */
    inputBoxHeight?: number;
    /**
     * (Highstock, Gantt) The pixel width of the date input boxes.
     */
    inputBoxWidth?: number;
    /**
     * (Highstock, Gantt) The date format in the input boxes when not selected
     * for editing. Defaults to `%b %e, %Y`.
     */
    inputDateFormat?: string;
    /**
     * (Highstock, Gantt) A custom callback function to parse values entered in
     * the input boxes and return a valid JavaScript time as milliseconds since
     * 1970. The first argument passed is a value to parse, second is a boolean
     * indicating use of the UTC time.
     */
    inputDateParser?: RangeSelectorParseCallbackFunction;
    /**
     * (Highstock, Gantt) The date format in the input boxes when they are
     * selected for editing. This must be a format that is recognized by
     * JavaScript Date.parse.
     */
    inputEditDateFormat?: string;
    /**
     * (Highstock, Gantt) Enable or disable the date input boxes. Defaults to
     * enabled when there is enough space, disabled if not (typically mobile).
     */
    inputEnabled?: boolean;
    /**
     * (Highstock, Gantt) Positioning for the input boxes. Allowed properties
     * are `align`, `x` and `y`.
     */
    inputPosition?: RangeSelectorInputPositionOptions;
    /**
     * (Highstock, Gantt) CSS for the HTML inputs in the range selector.
     *
     * In styled mode, the inputs are styled by the `.highcharts-range-input
     * text` rule in SVG mode, and `input.highcharts-range-selector` when
     * active.
     */
    inputStyle?: CSSObject;
    /**
     * (Highstock, Gantt) CSS styles for the labels - the Zoom, From and To
     * texts.
     *
     * In styled mode, the labels are styled by the `.highcharts-range-label`
     * class.
     */
    labelStyle?: CSSObject;
    /**
     * (Highstock, Gantt) The index of the button to appear pre-selected.
     */
    selected?: number;
    /**
     * (Highstock, Gantt) The vertical alignment of the rangeselector box.
     * Allowed properties are `top`, `middle`, `bottom`.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highstock, Gantt) The x offset of the range selector relative to its
     * horizontal alignment within `chart.spacingLeft` and `chart.spacingRight`.
     */
    x?: number;
    /**
     * (Highstock, Gantt) The y offset of the range selector relative to its
     * horizontal alignment within `chart.spacingLeft` and `chart.spacingRight`.
     */
    y?: number;
}
/**
 * A rectangle.
 */
export interface RectangleObject {
    /**
     * Height of the rectangle.
     */
    height: number;
    /**
     * Width of the rectangle.
     */
    width: number;
    /**
     * Horizontal position of the rectangle.
     */
    x: number;
    /**
     * Vertical position of the rectangle.
     */
    y: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Allows setting a set of rules to
 * apply for different screen or chart sizes. Each rule specifies additional
 * chart options.
 */
export interface ResponsiveOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A set of rules for responsive
     * settings. The rules are executed from the top down.
     */
    rules?: Array<ResponsiveRulesOptions>;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Under which conditions the rule
 * applies.
 */
export interface ResponsiveRulesConditionOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback function to gain
     * complete control on when the responsive rule applies. Return `true` if it
     * applies. This opens for checking against other metrics than the chart
     * size, for example the document size or other elements.
     */
    callback?: ResponsiveCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The responsive rule applies if
     * the chart height is less than this.
     */
    maxHeight?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The responsive rule applies if
     * the chart width is less than this.
     */
    maxWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The responsive rule applies if
     * the chart height is greater than this.
     */
    minHeight?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The responsive rule applies if
     * the chart width is greater than this.
     */
    minWidth?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) A set of rules for responsive
 * settings. The rules are executed from the top down.
 */
export interface ResponsiveRulesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A full set of chart options to
     * apply as overrides to the general chart options. The chart options are
     * applied when the given rule is active.
     *
     * A special case is configuration objects that take arrays, for example
     * xAxis, yAxis or series. For these collections, an `id` option is used to
     * map the new option set to an existing object. If an existing object of
     * the same id is not found, the item of the same indexupdated. So for
     * example, setting `chartOptions` with two series items without an `id`,
     * will cause the existing chart's two series to be updated with respective
     * options.
     */
    chartOptions?: Options;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Under which conditions the rule
     * applies.
     */
    condition?: ResponsiveRulesConditionOptions;
}
/**
 * (Highcharts) A node in a sankey diagram.
 */
export interface SankeyNodeObject extends Point {
    /**
     * The color of the auto generated node.
     */
    color: (ColorString|GradientColorObject|PatternObject);
    /**
     * The color index of the auto generated node, especially for use in styled
     * mode.
     */
    colorIndex: number;
    /**
     * An optional column index of where to place the node. The default
     * behaviour is to place it next to the preceding node.
     */
    column: number;
    /**
     * The id of the auto-generated node, refering to the `from` or `to` setting
     * of the link.
     */
    id: string;
    /**
     * (Highcharts) The name to display for the node in data labels and
     * tooltips. Use this when the name is different from the `id`. Where the id
     * must be unique for each node, this is not necessary for the name.
     */
    name: string;
    /**
     * The vertical offset of a node in terms of weight. Positive values shift
     * the node downwards, negative shift it upwards.
     */
    offset: number;
}
/**
 * (Highstock, Gantt) The scrollbar is a means of panning over the X axis of a
 * stock chart. Scrollbars can also be applied to other types of axes.
 *
 * Another approach to scrollable charts is the chart.scrollablePlotArea option
 * that is especially suitable for simpler cartesian charts on mobile.
 *
 * In styled mode, all the presentational options for the scrollbar are replaced
 * by the classes `.highcharts-scrollbar-thumb`, `.highcharts-scrollbar-arrow`,
 * `.highcharts-scrollbar-button`, `.highcharts-scrollbar-rifles` and
 * `.highcharts-scrollbar-track`.
 */
export interface ScrollbarOptions {
    /**
     * (Highstock, Gantt) The background color of the scrollbar itself.
     */
    barBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The color of the scrollbar's border.
     */
    barBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The border rounding radius of the bar.
     */
    barBorderRadius?: number;
    /**
     * (Highstock, Gantt) The width of the bar's border.
     */
    barBorderWidth?: number;
    /**
     * (Highstock, Gantt) The color of the small arrow inside the scrollbar
     * buttons.
     */
    buttonArrowColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The color of scrollbar buttons.
     */
    buttonBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The color of the border of the scrollbar buttons.
     */
    buttonBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The corner radius of the scrollbar buttons.
     */
    buttonBorderRadius?: number;
    /**
     * (Highstock, Gantt) The border width of the scrollbar buttons.
     */
    buttonBorderWidth?: number;
    /**
     * (Highstock, Gantt) Enable or disable the scrollbar.
     */
    enabled?: boolean;
    /**
     * (Highstock, Gantt) The height of the scrollbar. The height also applies
     * to the width of the scroll arrows so that they are always squares.
     * Defaults to 20 for touch devices and 14 for mouse devices.
     */
    height?: number;
    /**
     * (Highstock, Gantt) Whether to redraw the main chart as the scrollbar or
     * the navigator zoomed window is moved. Defaults to `true` for modern
     * browsers and `false` for legacy IE browsers as well as mobile devices.
     */
    liveRedraw?: boolean;
    /**
     * (Highstock, Gantt) The margin between the scrollbar and its axis when the
     * scrollbar is applied directly to an axis.
     */
    margin?: number;
    /**
     * (Highstock, Gantt) The minimum width of the scrollbar.
     */
    minWidth?: number;
    /**
     * (Highstock, Gantt) The color of the small rifles in the middle of the
     * scrollbar.
     */
    rifleColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) Whether to show or hide the scrollbar when the
     * scrolled content is zoomed out to it full extent.
     */
    showFull?: boolean;
    /**
     * (Highstock, Gantt) The color of the track background.
     */
    trackBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The color of the border of the scrollbar track.
     */
    trackBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock, Gantt) The corner radius of the border of the scrollbar
     * track.
     */
    trackBorderRadius?: number;
    /**
     * (Highstock, Gantt) The width of the border of the scrollbar track.
     */
    trackBorderWidth?: number;
    /**
     * (Highstock, Gantt) The z index of the scrollbar group.
     */
    zIndex?: number;
}
/**
 * Axis-specific data of a selection.
 */
export interface SelectDataObject {
    axis: Axis;
    max: number;
    min: number;
}
/**
 * Object for select events.
 */
export interface SelectEventObject {
    originalEvent: Event;
    xAxis: Array<SelectDataObject>;
    yAxis: Array<SelectDataObject>;
}
/**
 * (Highstock) An Acceleration bands indicator. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `abands` series are defined in plotOptions.abands.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAbandsOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesAbandsOptions { customProperty:
 * string; }
 *
 */
export interface SeriesAbandsOptions extends PlotAbandsOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "abands";
}
/**
 * (Highstock) Keyboard navigation for a series
 */
export interface SeriesAccessibilityKeyboardNavigationOptionsObject {
    /**
     * (Highstock) Enable/disable keyboard navigation support for a specific
     * series.
     */
    enabled?: boolean;
}
/**
 * (Highstock) Accessibility options for a series.
 */
export interface SeriesAccessibilityOptionsObject {
    /**
     * (Highstock) Provide a description of the series, announced to screen
     * readers.
     */
    description?: string;
    /**
     * (Highstock) Enable/disable accessibility functionality for a specific
     * series.
     */
    enabled?: boolean;
    /**
     * (Highstock) Expose only the series element to screen readers, not its
     * points.
     */
    exposeAsGroupOnly?: boolean;
    /**
     * (Highstock) Keyboard navigation for a series
     */
    keyboardNavigation?: SeriesAccessibilityKeyboardNavigationOptionsObject;
    /**
     * (Highstock) Formatter function to use instead of the default for point
     * descriptions. Same as `accessibility.point.descriptionFormatter`, but for
     * a single series.
     */
    pointDescriptionFormatter?: ScreenReaderFormatterCallbackFunction<Point>;
}
/**
 * (Highstock) A `AD` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ad` series are defined in plotOptions.ad.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAdOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesAdOptions { customProperty: string; }
 *
 */
export interface SeriesAdOptions extends PlotAdOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "ad";
}
/**
 * Event information regarding completed animation of a series.
 */
export interface SeriesAfterAnimateEventObject {
    /**
     * Animated series.
     */
    target: Series;
    /**
     * Event type.
     */
    type: "afterAnimate";
}
/**
 * (Highstock) An `AO` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ao` series are defined in plotOptions.ao.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAoOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesAoOptions { customProperty: string; }
 *
 */
export interface SeriesAoOptions extends PlotAoOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "ao";
}
/**
 * (Highstock) An `Absolute Price Oscillator` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `apo` series are defined in plotOptions.apo.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesApoOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesApoOptions { customProperty: string;
 * }
 *
 */
export interface SeriesApoOptions extends PlotApoOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "apo";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesAreaDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesAreaDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `area` series. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `area` series are defined in plotOptions.area.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAreaOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesAreaOptions { customProperty: string;
 * }
 *
 */
export interface SeriesAreaOptions extends PlotAreaOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `area` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` * and `pointInterval` given in the series options. If the
     * axis has categories, these will be used. Example: (see online
     * documentation for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "area";
    /**
     * Not available
     */
    useOhlcData?: undefined;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesArearangeDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesArearangeDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) Extended data labels for range series types. Range
 * series data labels use no `x` and `y` options. Instead, they have `xLow`,
 * `xHigh`, `yLow` and `yHigh` options to allow the higher and lower data label
 * sets individually.
 */
export interface SeriesAreaRangeDataLabelsOptionsObject {
    /**
     * (Highcharts, Highstock) The alignment of the data label compared to the
     * point. If `right`, the right side of the label should be touching the
     * point. For points with an extent, like columns, the alignments also
     * dictates how to align it inside the box, as given with the inside option.
     * Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock) Whether to allow data labels to overlap. To make
     * the labels less sensitive for overlapping, the dataLabels.padding can be
     * set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the initial animation when a
     * series is displayed for the `dataLabels`. The animation can also be set
     * as a configuration object. Please note that this option only applies to
     * the initial animation. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotArearangeDataLabelsAnimationOptions|PlotAreasplinerangeDataLabelsAnimationOptions|PlotColumnrangeDataLabelsAnimationOptions|PlotDumbbellDataLabelsAnimationOptions|
PlotLollipopDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock) The background color or gradient for the data
     * label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The border color for the data label. Defaults to
     * `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The border radius in pixels for the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock) The border width in pixels for the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock) A class name for the data label. Particularly in
     * styled mode, this can be used to give each series' or point's data label
     * unique styling. In addition to this option, a default color class name is
     * added so that we can give the labels a contrast text shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) The text color for the data labels. Defaults to
     * `undefined`. For certain series types, like column or map, the data
     * labels can be drawn inside the points. In this case the data label will
     * be drawn with maximum contrast by default. Additionally, it will be given
     * a `text-outline` style with the opposite color, to further increase the
     * contrast. This can be overridden by setting the `text-outline` style to
     * `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Whether to hide data labels that are outside the
     * plot area. By default, the data label is moved inside the plot area
     * according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock) Enable or disable the data labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) A declarative filter to control of which data
     * labels to display. The declarative filter is designed for use when
     * callback functions are not available, like when the chart options require
     * a pure JSON structure or for use with graphical editors. For programmatic
     * control, use the `formatter` instead, and return `undefined` to disable a
     * single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock) A format string for the data label. Available
     * variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock) Callback JavaScript function to format the data
     * label. Note that if a `format` is defined, the format takes precedence
     * and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) For points with an extent, like columns or map
     * areas, whether to align the data label inside the box or to the actual
     * value point. Defaults to `false` in most cases, `true` in stacked
     * columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock) Format for points with the value of null. Works
     * analogously to format. `nullFormat` can be applied only to series which
     * support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock) Callback JavaScript function that defines
     * formatting for points with the value of null. Works analogously to
     * formatter. `nullPointFormatter` can be applied only to series which
     * support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock) How to handle data labels that flow outside the
     * plot area. The default is `"justify"`, which aligns them inside the plot
     * area. For columns and bars, this means it will be moved inside the bar.
     * To display data labels outside the plot area, set `crop` to `false` and
     * `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock) When either the `borderWidth` or the
     * `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock) Aligns data labels relative to points. If
     * `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock) Text rotation in degrees. Note that due to a more
     * complex structure, backgrounds, borders and padding will be lost on a
     * rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock) The shadow of the box. Works best with
     * `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be an object
     * configuration containing `color`, `offsetX`, `offsetY`, `opacity` and
     * `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock) The name of a symbol to use for the border around
     * the label. Symbols are predefined functions on the Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock) Styles for the label. The default `color` setting
     * is `"contrast"`, which is a pseudo color that Highcharts picks up and
     * applies the maximum contrast to the underlying point item, for example
     * the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock) Options for a label text which should follow
     * marker's shape. Border and background are disabled for a label that
     * follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock) The vertical alignment of a data label. Can be
     * one of `top`, `middle` or `bottom`. The default value depends on the
     * data, for instance in a column chart, the label is above positive values
     * and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock) The x position offset of the label relative to
     * the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock) X offset of the higher data labels relative to
     * the point value.
     */
    xHigh?: number;
    /**
     * (Highcharts, Highstock) X offset of the lower data labels relative to the
     * point value.
     */
    xLow?: number;
    /**
     * (Highcharts, Highstock) The y position offset of the label relative to
     * the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock) Y offset of the higher data labels relative to
     * the point value.
     */
    yHigh?: number;
    /**
     * (Highcharts, Highstock) Y offset of the lower data labels relative to the
     * point value.
     */
    yLow?: number;
    /**
     * (Highcharts, Highstock) The Z index of the data labels. The default Z
     * index puts it above the series. Use a Z index of 2 to display it behind
     * the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock) A `arearange` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `arearange` series are defined in plotOptions.arearange.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesArearangeOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesArearangeOptions {
 * customProperty: string; }
 *
 */
export interface SeriesArearangeOptions extends PlotArearangeOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `arearange` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,low,high`. If the first value is a string, it is applied
     * as the name of the point, and the `x` value is inferred. The `x` value
     * can also be omitted, in which case the inner arrays should be of length
     * 2\. Then the `x` value is automatically calculated, either starting at 0
     * and incremented by 1, or from `pointStart` and `pointInterval` given in
     * the series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "arearange";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesAreasplineDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesAreasplineDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `areaspline` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `areaspline` series are defined in plotOptions.areaspline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAreasplineOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesAreasplineOptions {
 * customProperty: string; }
 *
 */
export interface SeriesAreasplineOptions extends PlotAreasplineOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `areaspline` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "areaspline";
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesAreasplinerangeDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesAreasplinerangeDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `areasplinerange` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `areasplinerange` series are defined in
 * plotOptions.areasplinerange.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAreasplinerangeOptions` via an interface to
 * allow custom properties: ``` declare interface SeriesAreasplinerangeOptions {
 * customProperty: string; }
 *
 */
export interface SeriesAreasplinerangeOptions extends PlotAreasplinerangeOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `areasplinerange` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,low,high`. If the first value is a string, it is applied
     * as the name of the point, and the `x` value is inferred. The `x` value
     * can also be omitted, in which case the inner arrays should be of length
     * 2\. Then the `x` value is automatically calculated, either starting at 0
     * and incremented by 1, or from `pointStart` and `pointInterval` given in
     * the series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "areasplinerange";
}
/**
 * (Highstock) A Aroon indicator. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `aroon` series are defined in plotOptions.aroon.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAroonOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesAroonOptions { customProperty:
 * string; }
 *
 */
export interface SeriesAroonOptions extends PlotAroonOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "aroon";
}
/**
 * (Highstock) An `Aroon Oscillator` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `aroonoscillator` series are defined in
 * plotOptions.aroonoscillator.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAroonoscillatorOptions` via an interface to
 * allow custom properties: ``` declare interface SeriesAroonoscillatorOptions {
 * customProperty: string; }
 *
 */
export interface SeriesAroonoscillatorOptions extends PlotAroonoscillatorOptions, SeriesOptions {
    /**
     * Not available
     */
    aroonDown?: undefined;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "aroonoscillator";
}
/**
 * (Highstock) A `ATR` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `atr` series are defined in plotOptions.atr.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesAtrOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesAtrOptions { customProperty: string;
 * }
 *
 */
export interface SeriesAtrOptions extends PlotAtrOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "atr";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesBarDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesBarDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `bar` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bar` series are defined in plotOptions.bar.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesBarOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesBarOptions { customProperty: string;
 * }
 *
 */
export interface SeriesBarOptions extends PlotBarOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `bar` series
     * type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "bar";
}
/**
 * (Highstock) A bollinger bands indicator. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bb` series are defined in plotOptions.bb.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesBbOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesBbOptions { customProperty: string; }
 *
 */
export interface SeriesBbOptions extends PlotBbOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "bb";
}
/**
 * (Highcharts) A `bellcurve` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * For options that apply to multiple series, it is recommended to add them to
 * the plotOptions.series options structure. To apply to all series of this
 * specific type, apply it to plotOptions.bellcurve.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bellcurve` series are defined in plotOptions.bellcurve.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesBellcurveOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesBellcurveOptions {
 * customProperty: string; }
 *
 */
export interface SeriesBellcurveOptions extends PlotBellcurveOptions, SeriesOptions {
    /**
     * (Highcharts) An integer identifying the index to use for the base series,
     * or a string representing the id of the series.
     */
    baseSeries?: (number|string);
    /**
     * Not available
     */
    data?: undefined;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "bellcurve";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesBoxplotDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesBoxplotDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `boxplot` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `boxplot` series are defined in plotOptions.boxplot.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesBoxplotOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesBoxplotOptions {
 * customProperty: string; }
 *
 */
export interface SeriesBoxplotOptions extends PlotBoxplotOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `boxplot`
     * series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 6 or 5 values. In this case, the values
     * correspond to `x,low,q1,median,q3,high`. If the first value is a string,
     * it is applied as the name of the point, and the `x` value is inferred.
     * The `x` value can also be omitted, in which case the inner arrays should
     * be of length 5. Then the `x` value is automatically calculated, either
     * starting at 0 and incremented by 1, or from `pointStart` and
     * `pointInterval` given in the series options. (see online documentation
     * for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number, number, number, number]|[(number|string), number, number, number, number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "boxplot";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesBubbleDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesBubbleDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `bubble` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bubble` series are defined in plotOptions.bubble.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesBubbleOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesBubbleOptions { customProperty:
 * string; }
 *
 */
export interface SeriesBubbleOptions extends PlotBubbleOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `bubble`
     * series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,y,z`. If the first value is a string, it is applied as
     * the name of the point, and the `x` value is inferred. The `x` value can
     * also be omitted, in which case the inner arrays should be of length 2\.
     * Then the `x` value is automatically calculated, either starting at 0 and
     * incremented by 1, or from `pointStart` and `pointInterval` given in the
     * series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "bubble";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesBulletDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesBulletDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) Individual target options for each point.
 */
export interface SeriesBulletDataTargetOptions {
    /**
     * (Highcharts) The border color of the rectangle representing the target.
     * When not set, the point's border color is used.
     *
     * In styled mode, use class `highcharts-bullet-target` instead.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts) The border width of the rectangle representing the target.
     *
     * In styled mode, use class `highcharts-bullet-target` instead.
     */
    borderWidth?: number;
    /**
     * (Highcharts) The color of the rectangle representing the target. When not
     * set, point's color (if set in point's options - `color`) or zone of the
     * target value (if `zones` or `negativeColor` are set) or the same color as
     * the point has is used.
     *
     * In styled mode, use class `highcharts-bullet-target` instead.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The height of the rectangle representing the target.
     */
    height?: number;
    /**
     * (Highcharts) The width of the rectangle representing the target. Could be
     * set as a pixel value or as a percentage of a column width.
     */
    width?: (number|string);
}
/**
 * (Highcharts) A `bullet` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `bullet` series are defined in plotOptions.bullet.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesBulletOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesBulletOptions { customProperty:
 * string; }
 *
 */
export interface SeriesBulletOptions extends PlotBulletOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `bullet`
     * series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,y,target`. If the first value is a string, it is applied
     * as the name of the point, and the `x` value is inferred. The `x` value
     * can also be omitted, in which case the inner arrays should be of length
     * 2\. Then the `x` value is automatically calculated, either starting at 0
     * and incremented by 1, or from `pointStart` and `pointInterval` given in
     * the series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "bullet";
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesCandlestickDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highstock) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesCandlestickDataDragDropGuideBoxOptions {
    /**
     * (Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highstock) A `candlestick` series. If the type option is not specified, it
 * is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `candlestick` series are defined in
 * plotOptions.candlestick.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesCandlestickOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesCandlestickOptions {
 * customProperty: string; }
 *
 */
export interface SeriesCandlestickOptions extends PlotCandlestickOptions, SeriesOptions {
    /**
     * (Highstock) An array of data points for the series. For the `candlestick`
     * series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 5 or 4 values. In this case, the values
     * correspond to `x,open,high,low,close`. If the first value is a string, it
     * is applied as the name of the point, and the `x` value is inferred. The
     * `x` value can also be omitted, in which case the inner arrays should be
     * of length 4. Then the `x` value is automatically calculated, either
     * starting at 0 and incremented by 1, or from `pointStart` and
     * `pointInterval` given in the series options. (see online documentation
     * for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number, number, number]|[(number|string), number, number, number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "candlestick";
}
/**
 * (Highstock) A `CCI` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `cci` series are defined in plotOptions.cci.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesCciOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesCciOptions { customProperty: string;
 * }
 *
 */
export interface SeriesCciOptions extends PlotCciOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "cci";
}
/**
 * (Highstock) A `Chaikin Oscillator` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `chaikin` series are defined in plotOptions.chaikin.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesChaikinOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesChaikinOptions {
 * customProperty: string; }
 *
 */
export interface SeriesChaikinOptions extends PlotChaikinOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "chaikin";
}
/**
 * Event information regarding check of a series box.
 */
export interface SeriesCheckboxClickEventObject {
    /**
     * Whether the box has been checked.
     */
    checked: boolean;
    /**
     * Related series.
     */
    item: Series;
    /**
     * Related series.
     */
    target: Series;
    /**
     * Event type.
     */
    type: "checkboxClick";
}
/**
 * Common information for a click event on a series.
 */
export interface SeriesClickEventObject extends Event {
    /**
     * Nearest point on the graph.
     */
    point: Point;
}
/**
 * (Highstock) A `CMF` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `cmf` series are defined in plotOptions.cmf.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesCmfOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesCmfOptions { customProperty: string;
 * }
 *
 */
export interface SeriesCmfOptions extends PlotCmfOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "cmf";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesColumnDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesColumnDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `column` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `column` series are defined in plotOptions.column.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesColumnOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesColumnOptions { customProperty:
 * string; }
 *
 */
export interface SeriesColumnOptions extends PlotColumnOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `column` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "column";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesColumnpyramidDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesColumnpyramidDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `columnpyramid` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `columnpyramid` series are defined in
 * plotOptions.columnpyramid.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesColumnpyramidOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesColumnpyramidOptions {
 * customProperty: string; }
 *
 */
export interface SeriesColumnpyramidOptions extends PlotColumnpyramidOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `columnpyramid` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The objects are point
     * configuration objects as seen below. If the total number of data points
     * exceeds the series' turboThreshold, this option is not available. (see
     * online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "columnpyramid";
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesColumnrangeDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesColumnrangeDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `columnrange` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `columnrange` series are defined in
 * plotOptions.columnrange.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesColumnrangeOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesColumnrangeOptions {
 * customProperty: string; }
 *
 */
export interface SeriesColumnrangeOptions extends PlotColumnrangeOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `columnrange` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,low,high`. If the first value is a string, it is applied
     * as the name of the point, and the `x` value is inferred. The `x` value
     * can also be omitted, in which case the inner arrays should be of length
     * 2\. Then the `x` value is automatically calculated, either starting at 0
     * and incremented by 1, or from `pointStart` and `pointInterval` given in
     * the series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "columnrange";
}
/**
 * (Gantt) Override Pathfinder connector options for a series. Requires
 * Highcharts Gantt to be loaded.
 */
export interface SeriesConnectorsOptionsObject {
    animation?: ConnectorsAnimationOptionsObject;
    /**
     * (Gantt) Set the default dash style for this chart's connecting lines.
     */
    dashStyle?: string;
    /**
     * (Gantt) Marker options specific to the end markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    endMarker?: ConnectorsEndMarkerOptions;
    /**
     * (Gantt) Set the default color for this chart's Pathfinder connecting
     * lines. Defaults to the color of the point being connected.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) Set the default pixel width for this chart's Pathfinder
     * connecting lines.
     */
    lineWidth?: number;
    /**
     * (Gantt) Marker options for this chart's Pathfinder connectors. Note that
     * this option is overridden by the `startMarker` and `endMarker` options.
     */
    marker?: ConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: ConnectorsStartMarkerOptions;
    /**
     * (Gantt) Set the default pathfinder algorithm to use for this chart. It is
     * possible to define your own algorithms by adding them to the
     * Highcharts.Pathfinder.prototype.algorithms object before the chart has
     * been created.
     *
     * The default algorithms are as follows:
     *
     * `straight`: Draws a straight line between the connecting points. Does not
     * avoid other points when drawing.
     *
     * `simpleConnect`: Finds a path between the points using right angles only.
     * Takes only starting/ending points into account, and will not avoid other
     * points.
     *
     * `fastAvoid`: Finds a path between the points using right angles only.
     * Will attempt to avoid other points, but its focus is performance over
     * accuracy. Works well with less dense datasets.
     *
     * Default value: `straight` is used as default for most series types, while
     * `simpleConnect` is used as default for Gantt series, to show dependencies
     * between points.
     */
    type?: (string|PathfinderTypeValue);
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesCylinderDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesCylinderDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `cylinder` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `cylinder` series are defined in plotOptions.cylinder.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesCylinderOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesCylinderOptions {
 * customProperty: string; }
 *
 */
export interface SeriesCylinderOptions extends PlotCylinderOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `cylinder` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "cylinder";
}
/**
 * (Highstock) A `DEMA` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `dema` series are defined in plotOptions.dema.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesDemaOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesDemaOptions { customProperty: string;
 * }
 *
 */
export interface SeriesDemaOptions extends PlotDemaOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "dema";
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesDependencywheelNodesDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) A `dependencywheel` series. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `dependencywheel` series are defined in
 * plotOptions.dependencywheel.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesDependencywheelOptions` via an interface to
 * allow custom properties: ``` declare interface SeriesDependencywheelOptions {
 * customProperty: string; }
 *
 */
export interface SeriesDependencywheelOptions extends PlotDependencywheelOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the
     * `dependencywheel` series type, points can be given in the following way:
     *
     * An array of objects with named values. The following snippet shows only a
     * few settings, see the complete options set below. If the total number of
     * data points exceeds the series' turboThreshold, this option is not
     * available. (see online documentation for example)
     */
    data?: Array<SeriesSankeyPointOptionsObject>;
    /**
     * (Highcharts) A collection of options for the individual nodes. The nodes
     * in a dependency diagram are auto-generated instances of
     * `Highcharts.Point`, but options can be applied here and linked by the
     * `id`.
     */
    nodes?: Array<SeriesSankeyNodesOptionsObject>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "dependencywheel";
}
/**
 * (Highstock) A Detrended Price Oscillator. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `dpo` series are defined in plotOptions.dpo.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesDpoOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesDpoOptions { customProperty: string;
 * }
 *
 */
export interface SeriesDpoOptions extends PlotDpoOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "dpo";
}
/**
 * (Highcharts, Highstock, Gantt) The draggable-points module allows points to
 * be moved around or modified in the chart. In addition to the options
 * mentioned under the `dragDrop` API structure, the module fires three events,
 * point.dragStart, point.drag and point.drop.
 */
export interface SeriesDragDropOptionsObject {
    /**
     * (Highstock) Allow close value to be dragged individually.
     */
    draggableClose?: boolean;
    /**
     * (Gantt) Allow end value to be dragged individually.
     */
    draggableEnd?: boolean;
    /**
     * (Highstock) Allow high value to be dragged individually.
     */
    draggableHigh?: boolean;
    /**
     * (Highstock) Allow low value to be dragged individually.
     */
    draggableLow?: boolean;
    /**
     * (Highstock) Allow open value to be dragged individually.
     */
    draggableOpen?: boolean;
    /**
     * (Highcharts, Highstock) Allow Q1 value to be dragged individually.
     */
    draggableQ1?: boolean;
    /**
     * (Highcharts, Highstock) Allow Q3 value to be dragged individually.
     */
    draggableQ3?: boolean;
    /**
     * (Gantt) Allow start value to be dragged individually.
     */
    draggableStart?: boolean;
    /**
     * (Highcharts) Allow target value to be dragged individually.
     */
    draggableTarget?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Allow x value to be dragged individually.
     */
    draggableX1?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Allow x2 value to be dragged individually.
     */
    draggableX2?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Enable dragging in the Y dimension. Note
     * that this is not supported for TreeGrid axes (the default axis type in
     * Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Options for the drag handles.
     */
    dragHandle?: DragDropHandleOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Set the maximum X value the points can be
     * moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock, Gantt) Set the maximum Y value the points can be
     * moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock, Gantt) Set the minimum X value the points can be
     * moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock, Gantt) Set the minimum Y value the points can be
     * moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock, Gantt) The X precision value to drag to for this
     * series. Set to 0 to disable. By default this is disabled, except for
     * category axes, where the default is 1.
     */
    dragPrecisionX?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Y precision value to drag to for this
     * series. Set to 0 to disable. By default this is disabled, except for
     * category axes, where the default is 1.
     */
    dragPrecisionY?: number;
    /**
     * (Highcharts, Highstock, Gantt) The amount of pixels to drag the pointer
     * before it counts as a drag operation. This prevents drag/drop to fire
     * when just clicking or selecting points.
     */
    dragSensitivity?: number;
    /**
     * (Highcharts, Highstock, Gantt) Group the points by a property. Points
     * with the same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock, Gantt) Style options for the guide box. The guide
     * box has one state by default, the `default` state.
     */
    guideBox?: (PlotAreaDragDropGuideBoxOptions|PlotArearangeDragDropGuideBoxOptions|PlotAreasplineDragDropGuideBoxOptions|PlotAreasplinerangeDragDropGuideBoxOptions|PlotBarDragDropGuideBoxOptions|
PlotBoxplotDragDropGuideBoxOptions|PlotBubbleDragDropGuideBoxOptions|PlotBulletDragDropGuideBoxOptions|PlotCandlestickDragDropGuideBoxOptions|PlotColumnDragDropGuideBoxOptions|
PlotColumnpyramidDragDropGuideBoxOptions|PlotColumnrangeDragDropGuideBoxOptions|PlotDumbbellDragDropGuideBoxOptions|PlotErrorbarDragDropGuideBoxOptions|PlotFlagsDragDropGuideBoxOptions|
PlotFunnel3dDragDropGuideBoxOptions|PlotGanttDragDropGuideBoxOptions|PlotHeatmapDragDropGuideBoxOptions|PlotLineDragDropGuideBoxOptions|PlotLollipopDragDropGuideBoxOptions|
PlotMapbubbleDragDropGuideBoxOptions|PlotMapDragDropGuideBoxOptions|PlotMaplineDragDropGuideBoxOptions|PlotMappointDragDropGuideBoxOptions|PlotOhlcDragDropGuideBoxOptions|
PlotPolygonDragDropGuideBoxOptions|PlotPyramid3dDragDropGuideBoxOptions|PlotScatterDragDropGuideBoxOptions|PlotSeriesDragDropGuideBoxOptions|PlotSplineDragDropGuideBoxOptions|
PlotStreamgraphDragDropGuideBoxOptions|PlotTilemapDragDropGuideBoxOptions|PlotTimelineDragDropGuideBoxOptions|PlotVariwideDragDropGuideBoxOptions|PlotWaterfallDragDropGuideBoxOptions|
PlotXrangeDragDropGuideBoxOptions|Dictionary<DragDropGuideBoxOptionsObject>);
    /**
     * (Highcharts, Highstock, Gantt) Update points as they are dragged. If
     * false, a guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesDumbbellDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesDumbbellDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The `dumbbell` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `dumbbell` series are defined in plotOptions.dumbbell.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesDumbbellOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesDumbbellOptions {
 * customProperty: string; }
 *
 */
export interface SeriesDumbbellOptions extends PlotDumbbellOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `dumbbell` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,low,high`. If the first value is a string, it is applied
     * as the name of the point, and the `x` value is inferred. The `x` value
     * can also be omitted, in which case the inner arrays should be of length
     * 2\. Then the `x` value is automatically calculated, either starting at 0
     * and incremented by 1, or from `pointStart` and `pointInterval` given in
     * the series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "dumbbell";
}
/**
 * (Highstock) A `EMA` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ema` series are defined in plotOptions.ema.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesEmaOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesEmaOptions { customProperty: string;
 * }
 *
 */
export interface SeriesEmaOptions extends PlotEmaOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "ema";
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesErrorbarDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `errorbar` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `errorbar` series are defined in plotOptions.errorbar.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesErrorbarOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesErrorbarOptions {
 * customProperty: string; }
 *
 */
export interface SeriesErrorbarOptions extends PlotErrorbarOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `errorbar`
     * series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,low,high`. If the first value is a string, it is applied
     * as the name of the point, and the `x` value is inferred. The `x` value
     * can also be omitted, in which case the inner arrays should be of length
     * 2\. Then the `x` value is automatically calculated, either starting at 0
     * and incremented by 1, or from `pointStart` and `pointInterval` given in
     * the series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "errorbar";
}
/**
 * (Highstock) General event handlers for the series items. These event hooks
 * can also be attached to the series at run time using the
 * `Highcharts.addEvent` function.
 */
export interface SeriesEventsOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) Fires after the series has finished its
     * initial animation, or in case animation is disabled, immediately as the
     * series is displayed.
     */
    afterAnimate?: SeriesAfterAnimateCallbackFunction;
    /**
     * (Highstock) Fires when the checkbox next to the series' name in the
     * legend is clicked. One parameter, `event`, is passed to the function. The
     * state of the checkbox is found by `event.checked`. The checked item is
     * found by `event.item`. Return `false` to prevent the default action which
     * is to toggle the select state of the series.
     */
    checkboxClick?: (Function|SeriesCheckboxClickCallbackFunction);
    /**
     * (Highstock) Fires when the series is clicked. One parameter, `event`, is
     * passed to the function, containing common event information.
     * Additionally, `event.point` holds a pointer to the nearest point on the
     * graph.
     */
    click?: SeriesClickCallbackFunction;
    /**
     * (Highstock) Fires when the series is hidden after chart generation time,
     * either by clicking the legend item or by calling `.hide()`.
     */
    hide?: SeriesHideCallbackFunction;
    /**
     * (Highstock) Fires when the legend item belonging to the series is
     * clicked. One parameter, `event`, is passed to the function. The default
     * action is to toggle the visibility of the series. This can be prevented
     * by returning `false` or calling `event.preventDefault()`.
     */
    legendItemClick?: SeriesLegendItemClickCallbackFunction;
    /**
     * (Highstock) Fires when the mouse leaves the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     * If the stickyTracking option is true, `mouseOut` doesn't happen before
     * the mouse enters another graph or leaves the plot area.
     */
    mouseOut?: SeriesMouseOutCallbackFunction;
    /**
     * (Highstock) Fires when the mouse enters the graph. One parameter,
     * `event`, is passed to the function, containing common event information.
     */
    mouseOver?: SeriesMouseOverCallbackFunction;
    /**
     * (Highcharts) Fires on a request for change of root node for the tree,
     * before the update is made. An event object is passed to the function,
     * containing additional properties `newRootId`, `previousRootId`, `redraw`
     * and `trigger`.
     */
    setRootNode?: Function;
    /**
     * (Highstock) Fires when the series is shown after chart generation time,
     * either by clicking the legend item or by calling `.show()`.
     */
    show?: SeriesShowCallbackFunction;
}
/**
 * (Highstock) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesFlagsDataDragDropGuideBoxOptions {
    /**
     * (Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highstock) A `flags` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `flags` series are defined in plotOptions.flags.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesFlagsOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesFlagsOptions { customProperty:
 * string; }
 *
 */
export interface SeriesFlagsOptions extends PlotFlagsOptions, SeriesOptions {
    /**
     * Not available
     */
    borderRadius?: undefined;
    /**
     * Not available
     */
    colorByPoint?: undefined;
    /**
     * (Highstock) An array of data points for the series. For the `flags`
     * series type, points can be given in the following ways:
     *
     * 1. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<PointOptionsObject>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    pointPadding?: undefined;
    /**
     * Not available
     */
    pointWidth?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "flags";
    /**
     * Not available
     */
    useOhlcData?: undefined;
}
/**
 * (Highcharts) A `funnel3d` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `funnel3d` series are defined in plotOptions.funnel3d.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesFunnel3dOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesFunnel3dOptions {
 * customProperty: string; }
 *
 */
export interface SeriesFunnel3dOptions extends PlotFunnel3dOptions, SeriesOptions {
    /**
     * Not available
     */
    allAreas?: undefined;
    /**
     * Not available
     */
    boostThreshold?: undefined;
    /**
     * (Highcharts) The center of the series. By default, it is centered in the
     * middle of the plot area, so it fills the plot area height.
     */
    center?: Array<(number|string)>;
    /**
     * Not available
     */
    colorAxis?: undefined;
    /**
     * Not available
     */
    compare?: undefined;
    /**
     * Not available
     */
    compareBase?: undefined;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * (Highcharts) The end angle of the pie in degrees where 0 is top and 90 is
     * right. Defaults to `startAngle` plus 360.
     */
    endAngle?: number;
    /**
     * (Highcharts) If the total sum of the pie's values is 0, the series is
     * represented as an empty circle . The `fillColor` option defines the color
     * of that circle. Use pie.borderWidth to set the border thickness.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) Equivalent to chart.ignoreHiddenSeries, this option tells
     * whether the series shall be redrawn as if the hidden point were `null`.
     *
     * The default value changed from `false` to `true` with Highcharts 3.0.
     */
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts, Highstock) The line cap used for line ends and line joins on
     * the graph.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts) The minimum size for a pie in response to auto margins. The
     * pie will try to shrink to make room for data labels in side the plot
     * area, but only to this size.
     */
    minSize?: (number|string);
    /**
     * (Highcharts) If a point is sliced, moved out from the center, how many
     * pixels should it be moved?.
     */
    slicedOffset?: number;
    /**
     * (Highcharts) The start angle of the pie slices in degrees where 0 is top
     * and 90 right.
     */
    startAngle?: number;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "funnel3d";
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesFunnelDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesFunnelDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `funnel` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `funnel` series are defined in plotOptions.funnel.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesFunnelOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesFunnelOptions { customProperty:
 * string; }
 *
 */
export interface SeriesFunnelOptions extends PlotFunnelOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `funnel`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "funnel";
    /**
     * Not available
     */
    xAxis?: undefined;
    /**
     * Not available
     */
    yAxis?: undefined;
}
/**
 * (Gantt) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesGanttDataDragDropGuideBoxOptions {
    /**
     * (Gantt) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Gantt) A `gantt` series.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `gantt` series are defined in plotOptions.gantt.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesGanttOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesGanttOptions { customProperty:
 * string; }
 *
 */
export interface SeriesGanttOptions extends PlotGanttOptions, SeriesOptions {
    /**
     * (Gantt) Data for a Gantt series.
     */
    data?: Array<GanttPointOptionsObject>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "gantt";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesGaugeDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesGaugeDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `gauge` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `gauge` series are defined in plotOptions.gauge.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesGaugeOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesGaugeOptions { customProperty:
 * string; }
 *
 */
export interface SeriesGaugeOptions extends PlotGaugeOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `gauge`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     *
     * The typical gauge only contains a single data value.
     */
    data?: Array<(number|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "gauge";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesHeatmapDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highmaps) Style options for the guide box. The guide box has one
 * state by default, the `default` state.
 */
export interface SeriesHeatmapDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highmaps) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highmaps) A `heatmap` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `heatmap` series are defined in plotOptions.heatmap.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesHeatmapOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesHeatmapOptions {
 * customProperty: string; }
 *
 */
export interface SeriesHeatmapOptions extends PlotHeatmapOptions, SeriesOptions {
    /**
     * (Highcharts, Highmaps) An array of data points for the series. For the
     * `heatmap` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,y,value`. If the first value is a string, it is applied
     * as the name of the point, and the `x` value is inferred. The `x` value
     * can also be omitted, in which case the inner arrays should be of length
     * 2\. Then the `x` value is automatically calculated, either starting at 0
     * and incremented by 1, or from `pointStart` and `pointInterval` given in
     * the series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(Array<number>|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "heatmap";
}
/**
 * (Highcharts) A `histogram` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `histogram` series are defined in plotOptions.histogram.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesHistogramOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesHistogramOptions {
 * customProperty: string; }
 *
 */
export interface SeriesHistogramOptions extends PlotHistogramOptions, SeriesOptions {
    /**
     * (Highcharts) An integer identifying the index to use for the base series,
     * or a string representing the id of the series.
     */
    baseSeries?: (number|string);
    /**
     * Not available
     */
    data?: undefined;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "histogram";
}
/**
 * (Highstock) A `IKH` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ikh` series are defined in plotOptions.ikh.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesIkhOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesIkhOptions { customProperty: string;
 * }
 *
 */
export interface SeriesIkhOptions extends PlotIkhOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "ikh";
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesItemDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesItemDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) An `item` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `item` series are defined in plotOptions.item.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesItemOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesItemOptions { customProperty: string;
 * }
 *
 */
export interface SeriesItemOptions extends PlotItemOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `item`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[string, (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "item";
    /**
     * Not available
     */
    xAxis?: undefined;
    /**
     * Not available
     */
    yAxis?: undefined;
}
/**
 * (Highstock) A Keltner Channels indicator. If the type option is not
 * specified, it is inherited fromchart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `keltnerchannels` series are defined in
 * plotOptions.keltnerchannels.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesKeltnerchannelsOptions` via an interface to
 * allow custom properties: ``` declare interface SeriesKeltnerchannelsOptions {
 * customProperty: string; }
 *
 */
export interface SeriesKeltnerchannelsOptions extends PlotKeltnerchannelsOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "keltnerchannels";
}
/**
 * (Highcharts, Highstock, Gantt) Series labels are placed as close to the
 * series as possible in a natural way, seeking to avoid other series. The goal
 * of this feature is to make the chart more easily readable, like if a human
 * designer placed the labels in the optimal position.
 *
 * The series labels currently work with series types having a `graph` or an
 * `area`.
 */
export interface SeriesLabelOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) An array of boxes to avoid when laying out
     * the labels. Each item has a `left`, `right`, `top` and `bottom` property.
     */
    boxesToAvoid?: Array<LabelIntersectBoxObject>;
    /**
     * (Highcharts, Highstock, Gantt) Allow labels to be placed distant to the
     * graph if necessary, and draw a connector line to the graph. Setting this
     * option to true may decrease the performance significantly, since the
     * algorithm with systematically search for open spaces in the whole plot
     * area. Visually, it may also result in a more cluttered chart, though more
     * of the series will be labeled.
     */
    connectorAllowed?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) If the label is closer than this to a
     * neighbour graph, draw a connector.
     */
    connectorNeighbourDistance?: number;
    /**
     * (Highcharts, Highstock, Gantt) Enable the series label per series.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A format string for the label, with
     * support for a subset of HTML. Variables are enclosed by curly brackets.
     * Available variables are `name`, `options.xxx`, `color` and other members
     * from the `series` object. Use this option also to set a static text for
     * the label.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Gantt) Callback function to format each of the
     * series' labels. The `this` keyword refers to the series object. By
     * default the `formatter` is undefined and the `series.name` is rendered.
     */
    formatter?: FormatterCallbackFunction<Series>;
    /**
     * (Highcharts, Highstock, Gantt) For area-like series, allow the font size
     * to vary so that small areas get a smaller font size. The default applies
     * this effect to area-like series but not line-like series.
     */
    maxFontSize?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) For area-like series, allow the font size
     * to vary so that small areas get a smaller font size. The default applies
     * this effect to area-like series but not line-like series.
     */
    minFontSize?: (number|null);
    /**
     * (Highcharts, Highstock, Gantt) Draw the label on the area of an area
     * series. By default it is drawn on the area. Set it to `false` to draw it
     * next to the graph instead.
     */
    onArea?: (boolean|null);
    /**
     * (Highcharts, Highstock, Gantt) Styles for the series label. The color
     * defaults to the series color, or a contrast color if `onArea`.
     */
    style?: CSSObject;
}
/**
 * (Highstock) The line marks the last price from all points.
 */
export interface SeriesLastPriceOptionsObject {
    /**
     * (Highstock) The color of the line of last price.
     */
    color?: string;
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
}
export interface SeriesLastVisiblePriceLabelOptionsObject {
    /**
     * (Highstock) Enable or disable the label.
     */
    enabled?: boolean;
}
/**
 * (Highstock) The line marks the last price from visible range of points.
 */
export interface SeriesLastVisiblePriceOptionsObject {
    /**
     * (Highstock) Enable or disable the indicator.
     */
    enabled?: boolean;
    label?: SeriesLastVisiblePriceLabelOptionsObject;
}
/**
 * Information about the legend click event.
 */
export interface SeriesLegendItemClickEventObject {
    /**
     * Related browser event.
     */
    browserEvent: PointerEvent;
    /**
     * Prevent the default action of toggle the visibility of the series.
     */
    preventDefault: Function;
    /**
     * Related series.
     */
    target: Series;
    /**
     * Event type.
     */
    type: "legendItemClick";
}
/**
 * (Highstock) A linear regression intercept series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `linearregressionangle` series are defined in
 * plotOptions.linearregressionangle.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesLinearregressionangleOptions` via an interface
 * to allow custom properties: ``` declare interface
 * SeriesLinearregressionangleOptions { customProperty: string; }
 *
 */
export interface SeriesLinearregressionangleOptions extends PlotLinearregressionangleOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "linearregressionangle";
}
/**
 * (Highstock) A linear regression intercept series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `linearregressionintercept` series are defined in
 * plotOptions.linearregressionintercept.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesLinearregressioninterceptOptions` via an
 * interface to allow custom properties: ``` declare interface
 * SeriesLinearregressioninterceptOptions { customProperty: string; }
 *
 */
export interface SeriesLinearregressioninterceptOptions extends PlotLinearregressioninterceptOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "linearregressionintercept";
}
/**
 * (Highstock) A linear regression series. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `linearregression` series are defined in
 * plotOptions.linearregression.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesLinearregressionOptions` via an interface to
 * allow custom properties: ``` declare interface SeriesLinearregressionOptions
 * { customProperty: string; }
 *
 */
export interface SeriesLinearregressionOptions extends PlotLinearregressionOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "linearregression";
}
/**
 * (Highstock) A linear regression slope series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `linearregressionslope` series are defined in
 * plotOptions.linearregressionslope.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesLinearregressionslopeOptions` via an interface
 * to allow custom properties: ``` declare interface
 * SeriesLinearregressionslopeOptions { customProperty: string; }
 *
 */
export interface SeriesLinearregressionslopeOptions extends PlotLinearregressionslopeOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "linearregressionslope";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesLineDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesLineDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock, Gantt) Point specific options for the
 * draggable-points module. Overrides options on `series.dragDrop`.
 */
export interface SeriesLineDataDragDropOptions {
    /**
     * (Highcharts, Highstock, Gantt) Enable dragging in the X dimension.
     */
    draggableX?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Enable dragging in the Y dimension. Note
     * that this is not supported for TreeGrid axes (the default axis type in
     * Gantt charts).
     */
    draggableY?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Options for the drag handles.
     */
    dragHandle?: DragDropHandleOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Set the maximum X value the points can be
     * moved to.
     */
    dragMaxX?: number;
    /**
     * (Highcharts, Highstock, Gantt) Set the maximum Y value the points can be
     * moved to.
     */
    dragMaxY?: number;
    /**
     * (Highcharts, Highstock, Gantt) Set the minimum X value the points can be
     * moved to.
     */
    dragMinX?: number;
    /**
     * (Highcharts, Highstock, Gantt) Set the minimum Y value the points can be
     * moved to.
     */
    dragMinY?: number;
    /**
     * (Highcharts, Highstock, Gantt) The X precision value to drag to for this
     * series. Set to 0 to disable. By default this is disabled, except for
     * category axes, where the default is 1.
     */
    dragPrecisionX?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Y precision value to drag to for this
     * series. Set to 0 to disable. By default this is disabled, except for
     * category axes, where the default is 1.
     */
    dragPrecisionY?: number;
    /**
     * (Highcharts, Highstock, Gantt) The amount of pixels to drag the pointer
     * before it counts as a drag operation. This prevents drag/drop to fire
     * when just clicking or selecting points.
     */
    dragSensitivity?: number;
    /**
     * (Highcharts, Highstock, Gantt) Group the points by a property. Points
     * with the same property value will be grouped together when moving.
     */
    groupBy?: string;
    /**
     * (Highcharts, Highstock, Gantt) Style options for the guide box. The guide
     * box has one state by default, the `default` state.
     */
    guideBox?: (SeriesAreaDataDragDropGuideBoxOptions|SeriesArearangeDataDragDropGuideBoxOptions|SeriesAreasplineDataDragDropGuideBoxOptions|SeriesAreasplinerangeDataDragDropGuideBoxOptions|
SeriesBarDataDragDropGuideBoxOptions|SeriesBoxplotDataDragDropGuideBoxOptions|SeriesBubbleDataDragDropGuideBoxOptions|SeriesBulletDataDragDropGuideBoxOptions|
SeriesCandlestickDataDragDropGuideBoxOptions|SeriesColumnDataDragDropGuideBoxOptions|SeriesColumnpyramidDataDragDropGuideBoxOptions|SeriesColumnrangeDataDragDropGuideBoxOptions|
SeriesCylinderDataDragDropGuideBoxOptions|SeriesDumbbellDataDragDropGuideBoxOptions|SeriesErrorbarDataDragDropGuideBoxOptions|SeriesFlagsDataDragDropGuideBoxOptions|
SeriesFunnelDataDragDropGuideBoxOptions|SeriesGanttDataDragDropGuideBoxOptions|SeriesGaugeDataDragDropGuideBoxOptions|SeriesHeatmapDataDragDropGuideBoxOptions|SeriesItemDataDragDropGuideBoxOptions|
SeriesLineDataDragDropGuideBoxOptions|SeriesLollipopDataDragDropGuideBoxOptions|SeriesNetworkgraphDataDragDropGuideBoxOptions|SeriesOhlcDataDragDropGuideBoxOptions|
SeriesPackedbubbleDataDragDropGuideBoxOptions|SeriesParetoDataDragDropGuideBoxOptions|SeriesPieDataDragDropGuideBoxOptions|SeriesPolygonDataDragDropGuideBoxOptions|
SeriesPyramidDataDragDropGuideBoxOptions|SeriesScatter3dDataDragDropGuideBoxOptions|SeriesScatterDataDragDropGuideBoxOptions|SeriesSolidgaugeDataDragDropGuideBoxOptions|
SeriesSplineDataDragDropGuideBoxOptions|SeriesStreamgraphDataDragDropGuideBoxOptions|SeriesSunburstDataDragDropGuideBoxOptions|SeriesTilemapDataDragDropGuideBoxOptions|
SeriesTimelineDataDragDropGuideBoxOptions|SeriesTreemapDataDragDropGuideBoxOptions|SeriesVariablepieDataDragDropGuideBoxOptions|SeriesVariwideDataDragDropGuideBoxOptions|
SeriesVectorDataDragDropGuideBoxOptions|SeriesVennDataDragDropGuideBoxOptions|SeriesWaterfallDataDragDropGuideBoxOptions|SeriesWindbarbDataDragDropGuideBoxOptions|
SeriesWordcloudDataDragDropGuideBoxOptions|SeriesXrangeDataDragDropGuideBoxOptions|Dictionary<DragDropGuideBoxOptionsObject>);
    /**
     * (Highcharts, Highstock, Gantt) Update points as they are dragged. If
     * false, a guide box is drawn to illustrate the new point size.
     */
    liveRedraw?: boolean;
}
/**
 * (Highcharts, Highstock) A `line` series. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `line` series are defined in plotOptions.line.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesLineOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesLineOptions { customProperty: string;
 * }
 *
 */
export interface SeriesLineOptions extends PlotLineOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `line` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     *
     * **Note:** In TypeScript you have to extend `PointOptionsObject` with an
     * additional declaration to allow custom data types: ```ts declare module
     * `highcharts` { interface PointOptionsObject { custom: Record<string,
     * (boolean|number|string)>; } } ```
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "line";
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesLollipopDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesLollipopDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) The `lollipop` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `lollipop` series are defined in plotOptions.lollipop.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesLollipopOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesLollipopOptions {
 * customProperty: string; }
 *
 */
export interface SeriesLollipopOptions extends PlotLollipopOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `lollipop` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "lollipop";
}
/**
 * (Highstock) A `MACD` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `macd` series are defined in plotOptions.macd.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesMacdOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesMacdOptions { customProperty: string;
 * }
 *
 */
export interface SeriesMacdOptions extends PlotMacdOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "macd";
}
/**
 * (Highmaps) An array of data points for the series. For the `mapbubble` series
 * type, points can be given in the following ways:
 *
 * 1. An array of numerical values. In this case, the numerical values will be
 * interpreted as `z` options. Example: (see online documentation for example)
 *
 * 2. An array of objects with named values. The following snippet shows only a
 * few settings, see the complete options set below. If the total number of data
 * points exceeds the series' turboThreshold, this option is not available. (see
 * online documentation for example)
 */
export interface SeriesMapbubbleDataOptions {
    /**
     * (Highmaps) Individual color for the point. By default the color is either
     * used to denote the value, or pulled from the global `colors` array.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Individual data label for each point. The options are the same
     * as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: DataLabelsOptions;
    /**
     * (Highmaps) The `id` of a series in the drilldown.series array to use for
     * a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highmaps) Individual point events
     */
    events?: PointEventsOptionsObject;
    /**
     * (Highmaps) An id for the point. This can be used after render time to get
     * a pointer to the point object through `chart.get()`.
     */
    id?: string;
    /**
     * (Highmaps) The name of the point as shown in the legend, tooltip,
     * dataLabel etc.
     */
    name?: string;
    /**
     * (Highmaps) While the `x` and `y` values of the bubble are determined by
     * the underlying map, the `z` indicates the actual value that gives the
     * size of the bubble.
     */
    z?: (number|null);
}
/**
 * (Highmaps) A `mapbubble` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `mapbubble` series are defined in plotOptions.mapbubble.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesMapbubbleOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesMapbubbleOptions {
 * customProperty: string; }
 *
 */
export interface SeriesMapbubbleOptions extends PlotMapbubbleOptions, SeriesOptions {
    /**
     * (Highmaps) An array of data points for the series. For the `mapbubble`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `z` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|null|SeriesMapbubbleDataOptions)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "mapbubble";
}
/**
 * (Highmaps) An array of data points for the series. For the `map` series type,
 * points can be given in the following ways:
 *
 * 1. An array of numerical values. In this case, the numerical values will be
 * interpreted as `value` options. Example: (see online documentation for
 * example)
 *
 * 2. An array of arrays with 2 values. In this case, the values correspond to
 * `[hc-key, value]`. Example: (see online documentation for example)
 *
 * 3. An array of objects with named values. The following snippet shows only a
 * few settings, see the complete options set below. If the total number of data
 * points exceeds the series' turboThreshold, this option is not available. (see
 * online documentation for example)
 */
export interface SeriesMapDataOptions {
    /**
     * (Highmaps) Individual color for the point. By default the color is either
     * used to denote the value, or pulled from the global `colors` array.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Individual data label for each point. The options are the same
     * as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: DataLabelsOptions;
    /**
     * (Highmaps) The `id` of a series in the drilldown.series array to use for
     * a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highmaps) Individual point events
     */
    events?: PointEventsOptionsObject;
    /**
     * (Highmaps) An id for the point. This can be used after render time to get
     * a pointer to the point object through `chart.get()`.
     */
    id?: string;
    /**
     * (Highmaps) When data labels are laid out on a map, Highmaps runs a
     * simplified algorithm to detect collision. When two labels collide, the
     * one with the lowest rank is hidden. By default the rank is computed from
     * the area.
     */
    labelrank?: number;
    /**
     * (Highmaps) The relative mid point of an area, used to place the data
     * label. Ranges from 0 to 1\. When `mapData` is used, middleX can be
     * defined there.
     */
    middleX?: number;
    /**
     * (Highmaps) The relative mid point of an area, used to place the data
     * label. Ranges from 0 to 1\. When `mapData` is used, middleY can be
     * defined there.
     */
    middleY?: number;
    /**
     * (Highmaps) The name of the point as shown in the legend, tooltip,
     * dataLabel etc.
     */
    name?: string;
    /**
     * (Highmaps) For map and mapline series types, the SVG path for the shape.
     * For compatibily with old IE, not all SVG path definitions are supported,
     * but M, L and C operators are safe.
     *
     * To achieve a better separation between the structure and the data, it is
     * recommended to use `mapData` to define that paths instead of defining
     * them on the data points themselves.
     */
    path?: string;
    /**
     * (Highmaps) The numeric value of the data point.
     */
    value?: (number|null);
}
/**
 * (Highmaps) A `mapline` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `mapline` series are defined in plotOptions.mapline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesMaplineOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesMaplineOptions {
 * customProperty: string; }
 *
 */
export interface SeriesMaplineOptions extends PlotMaplineOptions, SeriesOptions {
    /**
     * (Highmaps) An array of data points for the series. For the `mapline`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `value` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `[hc-key, value]`. Example: (see online documentation for example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[string, (number|null)]|null|any)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "mapline";
}
/**
 * (Highmaps) A `map` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `map` series are defined in plotOptions.map.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesMapOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesMapOptions { customProperty: string;
 * }
 *
 */
export interface SeriesMapOptions extends PlotMapOptions, SeriesOptions {
    /**
     * (Highmaps) An array of data points for the series. For the `map` series
     * type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `value` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `[hc-key, value]`. Example: (see online documentation for example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[string, (number|null)]|null|SeriesMapDataOptions)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "map";
}
/**
 * (Highmaps) An array of data points for the series. For the `mappoint` series
 * type, points can be given in the following ways:
 *
 * 1. An array of numerical values. In this case, the numerical values will be
 * interpreted as `y` options. The `x` values will be automatically calculated,
 * either starting at 0 and incremented by 1, or from `pointStart` and
 * `pointInterval` given in the series options. If the axis has categories,
 * these will be used. Example: (see online documentation for example)
 *
 * 2. An array of arrays with 2 values. In this case, the values correspond to
 * `x,y`. If the first value is a string, it is applied as the name of the
 * point, and the `x` value is inferred. (see online documentation for example)
 *
 * 3. An array of objects with named values. The following snippet shows only a
 * few settings, see the complete options set below. If the total number of data
 * points exceeds the series' turboThreshold, this option is not available. (see
 * online documentation for example)
 */
export interface SeriesMappointDataOptions {
    /**
     * (Highmaps) Individual color for the point. By default the color is either
     * used to denote the value, or pulled from the global `colors` array.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) Individual data label for each point. The options are the same
     * as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: DataLabelsOptions;
    /**
     * (Highmaps) The `id` of a series in the drilldown.series array to use for
     * a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highmaps) Individual point events
     */
    events?: PointEventsOptionsObject;
    /**
     * (Highmaps) An id for the point. This can be used after render time to get
     * a pointer to the point object through `chart.get()`.
     */
    id?: string;
    /**
     * (Highmaps) The latitude of the point. Must be combined with the `lon`
     * option to work. Overrides `x` and `y` values.
     */
    lat?: number;
    /**
     * (Highmaps) The longitude of the point. Must be combined with the `lon`
     * option to work. Overrides `x` and `y` values.
     */
    lon?: number;
    /**
     * (Highmaps) The name of the point as shown in the legend, tooltip,
     * dataLabel etc.
     */
    name?: string;
    /**
     * (Highmaps) The x coordinate of the point in terms of the map path
     * coordinates.
     */
    x?: number;
    /**
     * (Highmaps) The x coordinate of the point in terms of the map path
     * coordinates.
     */
    y?: (number|null);
}
/**
 * (Highmaps) A `mappoint` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `mappoint` series are defined in plotOptions.mappoint.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesMappointOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesMappointOptions {
 * customProperty: string; }
 *
 */
export interface SeriesMappointOptions extends PlotMappointOptions, SeriesOptions {
    /**
     * (Highmaps) An array of data points for the series. For the `mappoint`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[number, (number|null)]|null|SeriesMappointDataOptions)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "mappoint";
}
/**
 * (Highstock) A `MFI` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `mfi` series are defined in plotOptions.mfi.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesMfiOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesMfiOptions { customProperty: string;
 * }
 *
 */
export interface SeriesMfiOptions extends PlotMfiOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "mfi";
}
/**
 * (Highstock) A `Momentum` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `momentum` series are defined in plotOptions.momentum.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesMomentumOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesMomentumOptions {
 * customProperty: string; }
 *
 */
export interface SeriesMomentumOptions extends PlotMomentumOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "momentum";
}
/**
 * (Highstock) A `NATR` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `natr` series are defined in plotOptions.natr.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesNatrOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesNatrOptions { customProperty: string;
 * }
 *
 */
export interface SeriesNatrOptions extends PlotNatrOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "natr";
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesNetworkgraphDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesNetworkgraphDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * Context for the formatter function.
 */
export interface SeriesNetworkgraphDataLabelsFormatterContextObject extends PointLabelObject {
    /**
     * The color of the node.
     */
    color: ColorString;
    /**
     * The ID of the node.
     */
    key: string;
    /**
     * The point (node) object. The node name, if defined, is available through
     * `this.point.name`. Arrays: `this.point.linksFrom` and
     * `this.point.linksTo` contains all nodes connected to this point.
     */
    point: Point;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface SeriesNetworkgraphDataLabelsOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotNetworkgraphDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The format string specifying
     * what to show for _node_ in the networkgraph. In v7.0 defaults to `{key}`,
     * since v7.1 defaults to `undefined` and `formatter` is used instead.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label for a node. Note that if a `format` is defined, the
     * format takes precedence and the formatter is ignored.
     */
    formatter?: SeriesNetworkgraphDataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The format string specifying
     * what to show for _links_ in the networkgraph. (Default: `undefined`)
     */
    linkFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback to format data labels
     * for _links_ in the sankey diagram. The `linkFormat` option takes
     * precedence over the `linkFormatter`.
     */
    linkFormatter?: SeriesNetworkgraphDataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a _link_ label text
     * which should follow link connection. Border and background are disabled
     * for a label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    linkTextPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: (CSSObject|PlotNetworkgraphDataLabelsStyleOptions);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) A collection of options for the individual nodes. The nodes in a
 * networkgraph diagram are auto-generated instances of `Highcharts.Point`, but
 * options can be applied here and linked by the `id`.
 */
export interface SeriesNetworkgraphNodesOptions {
    /**
     * (Highcharts) The color of the auto generated node.
     */
    color?: ColorString;
    /**
     * (Highcharts) The color index of the auto generated node, especially for
     * use in styled mode.
     */
    colorIndex?: number;
    /**
     * (Highcharts) Individual data label for each node. The options are the
     * same as the ones for series.networkgraph.dataLabels.
     */
    dataLabels?: (SeriesNetworkgraphDataLabelsOptionsObject|Array<SeriesNetworkgraphDataLabelsOptionsObject>);
    /**
     * (Highcharts) The id of the auto-generated node, refering to the `from` or
     * `to` setting of the link.
     */
    id?: string;
    /**
     * (Highcharts) Mass of the node. By default, each node has mass equal to
     * it's marker radius . Mass is used to determine how two connected nodes
     * should affect each other:
     *
     * Attractive force is multiplied by the ratio of two connected nodes; if a
     * big node has weights twice as the small one, then the small one will move
     * towards the big one twice faster than the big one to the small one .
     */
    mass?: number;
    /**
     * (Highcharts) The name to display for the node in data labels and
     * tooltips. Use this when the name is different from the `id`. Where the id
     * must be unique for each node, this is not necessary for the name.
     */
    name?: string;
}
/**
 * (Highcharts) A `networkgraph` series. If the type option is not specified, it
 * is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `networkgraph` series are defined in
 * plotOptions.networkgraph.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesNetworkgraphOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesNetworkgraphOptions {
 * customProperty: string; }
 *
 */
export interface SeriesNetworkgraphOptions extends PlotNetworkgraphOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the
     * `networkgraph` series type, points can be given in the following way:
     *
     * An array of objects with named values. The following snippet shows only a
     * few settings, see the complete options set below. If the total number of
     * data points exceeds the series' turboThreshold, this option is not
     * available. (see online documentation for example)
     */
    data?: (PointOptionsObject|Array<(object|any[]|number)>);
    /**
     * (Highcharts) A collection of options for the individual nodes. The nodes
     * in a networkgraph diagram are auto-generated instances of
     * `Highcharts.Point`, but options can be applied here and linked by the
     * `id`.
     */
    nodes?: Array<SeriesNetworkgraphNodesOptions>;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "networkgraph";
    /**
     * Not available
     */
    xAxis?: undefined;
    /**
     * Not available
     */
    yAxis?: undefined;
}
/**
 * (Highcharts, Highstock) Enable or disable the initial animation when a series
 * is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesOhlcDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock) The animation delay time in milliseconds. Set to
     * `0` renders dataLabel immediately. As `undefined` inherits defer time
     * from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highstock) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesOhlcDataDragDropGuideBoxOptions {
    /**
     * (Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highstock) A `ohlc` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ohlc` series are defined in plotOptions.ohlc.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesOhlcOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesOhlcOptions { customProperty: string;
 * }
 *
 */
export interface SeriesOhlcOptions extends PlotOhlcOptions, SeriesOptions {
    /**
     * (Highstock) An array of data points for the series. For the `ohlc` series
     * type, points can be given in the following ways:
     *
     * 1. An array of arrays with 5 or 4 values. In this case, the values
     * correspond to `x,open,high,low,close`. If the first value is a string, it
     * is applied as the name of the point, and the `x` value is inferred. The
     * `x` value can also be omitted, in which case the inner arrays should be
     * of length 4\. Then the `x` value is automatically calculated, either
     * starting at 0 and incremented by 1, or from `pointStart` and
     * `pointInterval` given in the series options. (see online documentation
     * for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number, number, number]|[(number|string), number, number, number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "ohlc";
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Series options for specific data and
 * the data itself. In TypeScript you have to cast the series options to
 * specific series types, to get all possible options for a series.
 *
 * You have to extend the `SeriesOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesOptions { customProperty: string; }
 *
 */
export interface SeriesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An id for the series. This can
     * be used after render time to get a pointer to the series object through
     * `chart.get()`.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The index of the series in the
     * chart, affecting the internal index in the `chart.series` array, the
     * visible Z index as well as the order in the legend.
     */
    index?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The sequential index of the
     * series in the legend.
     */
    legendIndex?: number;
    /**
     * (Highmaps) A map data object containing a `path` definition and
     * optionally additional properties to join in the data as per the `joinBy`
     * option.
     */
    mapData?: (Array<SeriesMapDataOptions>|any);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of the series as shown
     * in the legend, tooltip etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock) This option allows grouping series in a stacked
     * chart. The stack option can be a string or anything else, as long as the
     * grouped series' stack options match each other after conversion into a
     * string.
     */
    stack?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The type of series, for example
     * `line` or `column`. By default, the series type is inherited from
     * chart.type, so unless the chart is a combination of series types, there
     * is no need to set it on the series level.
     */
    type: string;
    /**
     * (Highcharts, Highstock) When using dual or multiple x axes, this number
     * defines which xAxis the particular series is connected to. It refers to
     * either the axis id or the index of the axis in the xAxis array, with 0
     * being the first.
     */
    xAxis?: (number|string);
    /**
     * (Highcharts, Highstock) When using dual or multiple y axes, this number
     * defines which yAxis the particular series is connected to. It refers to
     * either the axis id or the index of the axis in the yAxis array, with 0
     * being the first.
     */
    yAxis?: (number|string);
    /**
     * (Highcharts, Highstock) Define the visual z index of the series.
     */
    zIndex?: number;
}
/**
 * The registry for all types of series options.
 */
export interface SeriesOptionsRegistry {
    SeriesAbandsOptions: SeriesAbandsOptions;
    SeriesAdOptions: SeriesAdOptions;
    SeriesAoOptions: SeriesAoOptions;
    SeriesApoOptions: SeriesApoOptions;
    SeriesAreaOptions: SeriesAreaOptions;
    SeriesArearangeOptions: SeriesArearangeOptions;
    SeriesAreasplineOptions: SeriesAreasplineOptions;
    SeriesAreasplinerangeOptions: SeriesAreasplinerangeOptions;
    SeriesAroonOptions: SeriesAroonOptions;
    SeriesAroonoscillatorOptions: SeriesAroonoscillatorOptions;
    SeriesAtrOptions: SeriesAtrOptions;
    SeriesBarOptions: SeriesBarOptions;
    SeriesBbOptions: SeriesBbOptions;
    SeriesBellcurveOptions: SeriesBellcurveOptions;
    SeriesBoxplotOptions: SeriesBoxplotOptions;
    SeriesBubbleOptions: SeriesBubbleOptions;
    SeriesBulletOptions: SeriesBulletOptions;
    SeriesCandlestickOptions: SeriesCandlestickOptions;
    SeriesCciOptions: SeriesCciOptions;
    SeriesChaikinOptions: SeriesChaikinOptions;
    SeriesCmfOptions: SeriesCmfOptions;
    SeriesColumnOptions: SeriesColumnOptions;
    SeriesColumnpyramidOptions: SeriesColumnpyramidOptions;
    SeriesColumnrangeOptions: SeriesColumnrangeOptions;
    SeriesCylinderOptions: SeriesCylinderOptions;
    SeriesDemaOptions: SeriesDemaOptions;
    SeriesDependencywheelOptions: SeriesDependencywheelOptions;
    SeriesDpoOptions: SeriesDpoOptions;
    SeriesDumbbellOptions: SeriesDumbbellOptions;
    SeriesEmaOptions: SeriesEmaOptions;
    SeriesErrorbarOptions: SeriesErrorbarOptions;
    SeriesFlagsOptions: SeriesFlagsOptions;
    SeriesFunnel3dOptions: SeriesFunnel3dOptions;
    SeriesFunnelOptions: SeriesFunnelOptions;
    SeriesGanttOptions: SeriesGanttOptions;
    SeriesGaugeOptions: SeriesGaugeOptions;
    SeriesHeatmapOptions: SeriesHeatmapOptions;
    SeriesHistogramOptions: SeriesHistogramOptions;
    SeriesIkhOptions: SeriesIkhOptions;
    SeriesItemOptions: SeriesItemOptions;
    SeriesKeltnerchannelsOptions: SeriesKeltnerchannelsOptions;
    SeriesLinearregressionangleOptions: SeriesLinearregressionangleOptions;
    SeriesLinearregressioninterceptOptions: SeriesLinearregressioninterceptOptions;
    SeriesLinearregressionOptions: SeriesLinearregressionOptions;
    SeriesLinearregressionslopeOptions: SeriesLinearregressionslopeOptions;
    SeriesLineOptions: SeriesLineOptions;
    SeriesLollipopOptions: SeriesLollipopOptions;
    SeriesMacdOptions: SeriesMacdOptions;
    SeriesMapbubbleOptions: SeriesMapbubbleOptions;
    SeriesMaplineOptions: SeriesMaplineOptions;
    SeriesMapOptions: SeriesMapOptions;
    SeriesMappointOptions: SeriesMappointOptions;
    SeriesMfiOptions: SeriesMfiOptions;
    SeriesMomentumOptions: SeriesMomentumOptions;
    SeriesNatrOptions: SeriesNatrOptions;
    SeriesNetworkgraphOptions: SeriesNetworkgraphOptions;
    SeriesOhlcOptions: SeriesOhlcOptions;
    SeriesOrganizationOptions: SeriesOrganizationOptions;
    SeriesPackedbubbleOptions: SeriesPackedbubbleOptions;
    SeriesParetoOptions: SeriesParetoOptions;
    SeriesPcOptions: SeriesPcOptions;
    SeriesPieOptions: SeriesPieOptions;
    SeriesPivotpointsOptions: SeriesPivotpointsOptions;
    SeriesPolygonOptions: SeriesPolygonOptions;
    SeriesPpoOptions: SeriesPpoOptions;
    SeriesPriceenvelopesOptions: SeriesPriceenvelopesOptions;
    SeriesPsarOptions: SeriesPsarOptions;
    SeriesPyramid3dOptions: SeriesPyramid3dOptions;
    SeriesPyramidOptions: SeriesPyramidOptions;
    SeriesRocOptions: SeriesRocOptions;
    SeriesRsiOptions: SeriesRsiOptions;
    SeriesSankeyOptions: SeriesSankeyOptions;
    SeriesScatter3dOptions: SeriesScatter3dOptions;
    SeriesScatterOptions: SeriesScatterOptions;
    SeriesSlowstochasticOptions: SeriesSlowstochasticOptions;
    SeriesSmaOptions: SeriesSmaOptions;
    SeriesSolidgaugeOptions: SeriesSolidgaugeOptions;
    SeriesSplineOptions: SeriesSplineOptions;
    SeriesStochasticOptions: SeriesStochasticOptions;
    SeriesStreamgraphOptions: SeriesStreamgraphOptions;
    SeriesSunburstOptions: SeriesSunburstOptions;
    SeriesSupertrendOptions: SeriesSupertrendOptions;
    SeriesTemaOptions: SeriesTemaOptions;
    SeriesTilemapOptions: SeriesTilemapOptions;
    SeriesTimelineOptions: SeriesTimelineOptions;
    SeriesTreemapOptions: SeriesTreemapOptions;
    SeriesTrendlineOptions: SeriesTrendlineOptions;
    SeriesTrixOptions: SeriesTrixOptions;
    SeriesVariablepieOptions: SeriesVariablepieOptions;
    SeriesVariwideOptions: SeriesVariwideOptions;
    SeriesVbpOptions: SeriesVbpOptions;
    SeriesVectorOptions: SeriesVectorOptions;
    SeriesVennOptions: SeriesVennOptions;
    SeriesVwapOptions: SeriesVwapOptions;
    SeriesWaterfallOptions: SeriesWaterfallOptions;
    SeriesWilliamsrOptions: SeriesWilliamsrOptions;
    SeriesWindbarbOptions: SeriesWindbarbOptions;
    SeriesWmaOptions: SeriesWmaOptions;
    SeriesWordcloudOptions: SeriesWordcloudOptions;
    SeriesXrangeOptions: SeriesXrangeOptions;
    SeriesZigzagOptions: SeriesZigzagOptions;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesOrganizationDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the data labels
 * appearing on top of the nodes and links. For sankey charts, data labels are
 * visible for the nodes by default, but hidden for links. This is controlled by
 * modifying the `nodeFormat`, and the `format` that applies to links and is an
 * empty string by default.
 */
export interface SeriesOrganizationDataLabelsOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotOrganizationDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: SeriesSankeyDataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The format string specifying
     * what to show for _nodes_ in the sankey diagram. By default the
     * `nodeFormatter` returns `{point.name}`.
     */
    nodeFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback for defining the
     * format for _nodes_ in the organization chart. The `nodeFormat` option
     * takes precedence over `nodeFormatter`.
     *
     * In an organization chart, the `nodeFormatter` is a quite complex function
     * of the available options, striving for a good default layout of cards
     * with or without images. In organization chart, the data labels come with
     * `useHTML` set to true, meaning they will be rendered as true HTML above
     * the SVG.
     */
    nodeFormatter?: SeriesSankeyDataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesOrganizationNodesDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) An `organization` series. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `organization` series are defined in
 * plotOptions.organization.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesOrganizationOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesOrganizationOptions {
 * customProperty: string; }
 *
 */
export interface SeriesOrganizationOptions extends PlotOrganizationOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the
     * `organization` series type, points can be given in the following way:
     *
     * An array of objects with named values. The following snippet shows only a
     * few settings, see the complete options set below. If the total number of
     * data points exceeds the series' turboThreshold, this option is not
     * available. (see online documentation for example)
     */
    data?: Array<SeriesSankeyPointOptionsObject>;
    /**
     * (Highcharts) A collection of options for the individual nodes. The nodes
     * in an org chart are auto-generated instances of `Highcharts.Point`, but
     * options can be applied here and linked by the `id`.
     */
    nodes?: Array<SeriesSankeyNodesOptionsObject>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "organization";
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesPackedbubbleDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesPackedbubbleDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * Context for the formatter function.
 */
export interface SeriesPackedBubbleDataLabelsFormatterContextObject extends PointLabelObject {
    /**
     * The color of the node.
     */
    color: ColorString;
    /**
     * The ID of the node.
     */
    key: string;
    /**
     * The point (node) object. The node name, if defined, is available through
     * `this.point.name`. Arrays: `this.point.linksFrom` and
     * `this.point.linksTo` contains all nodes connected to this point.
     */
    point: Point;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface SeriesPackedBubbleDataLabelsOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotPackedbubbleDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Presentation attributes for the
     * text path.
     */
    attributes?: SVGAttributes;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The format string specifying
     * what to show for _node_ in the networkgraph. In v7.0 defaults to `{key}`,
     * since v7.1 defaults to `undefined` and `formatter` is used instead.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label for a node. Note that if a `format` is defined, the
     * format takes precedence and the formatter is ignored.
     */
    formatter?: SeriesPackedBubbleDataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    parentNodeFormat?: string;
    parentNodeFormatter?: SeriesPackedBubbleDataLabelsFormatterCallbackFunction;
    parentNodeTextPath?: SeriesPackedBubbleDataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: (CSSObject|PlotPackedbubbleDataLabelsStyleOptions);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a _node_ label text
     * which should follow marker's shape.
     *
     * **Note:** Only SVG-based renderer supports this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
export interface SeriesPackedBubbleDataLabelsTextPathOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable `textPath`
     * option for link's or marker's data labels.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) A `packedbubble` series. If the type option is not specified, it
 * is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `packedbubble` series are defined in
 * plotOptions.packedbubble.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPackedbubbleOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesPackedbubbleOptions {
 * customProperty: string; }
 *
 */
export interface SeriesPackedbubbleOptions extends PlotPackedbubbleOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the
     * `packedbubble` series type, points can be given in the following ways:
     *
     * 1. An array of `values`. (see online documentation for example)
     *
     * 2. An array of objects with named values. The objects are point
     * configuration objects as seen below. If the total number of data points
     * exceeds the series' turboThreshold, this option is not available. (see
     * online documentation for example)
     */
    data?: (PointOptionsObject|Array<(object|any[])>);
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "packedbubble";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesParetoDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesParetoDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `pareto` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pareto` series are defined in plotOptions.pareto.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesParetoOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesParetoOptions { customProperty:
 * string; }
 *
 */
export interface SeriesParetoOptions extends PlotParetoOptions, SeriesOptions {
    /**
     * (Highcharts) An integer identifying the index to use for the base series,
     * or a string representing the id of the series.
     */
    baseSeries?: (number|string);
    /**
     * (Highcharts) An array of data points for the series. For the `pareto`
     * series type, points are calculated dynamically.
     */
    data?: Array<(Array<(number|string)>|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "pareto";
}
/**
 * (Highstock) A Price channel indicator. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pc` series are defined in plotOptions.pc.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPcOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesPcOptions { customProperty: string; }
 *
 */
export interface SeriesPcOptions extends PlotPcOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "pc";
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesPieDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesPieDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface SeriesPieDataLabelsOptionsObject {
    /**
     * (Highcharts) Alignment method for data labels. Possible values are:
     *
     * - `toPlotEdges`: Each label touches the nearest vertical edge of the plot
     * area.
     *
     * - `connectors`: Connectors have the same x position and the widest label
     * of each half (left & right) touches the nearest vertical edge of the plot
     * area.
     */
    alignTo?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotFunnelDataLabelsAnimationOptions|PlotItemDataLabelsAnimationOptions|PlotPieDataLabelsAnimationOptions|PlotPyramidDataLabelsAnimationOptions|
PlotVariablepieDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the line connecting the data label to the pie
     * slice. The default color is the same as the point's color.
     *
     * In styled mode, the connector stroke is given in the
     * `.highcharts-data-label-connector` class.
     */
    connectorColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The distance from the data label to the connector. Note that
     * data labels also have a default `padding`, so in order for the connector
     * to touch the text, the `padding` must also be 0.
     */
    connectorPadding?: number;
    /**
     * (Highcharts) Specifies the method that is used to generate the connector
     * path. Highcharts provides 3 built-in connector shapes: `'fixedOffset'`
     * (default), `'straight'` and `'crookedLine'`. Using `'crookedLine'` has
     * the most sense (in most of the cases) when `'alignTo'` is set.
     *
     * Users can provide their own method by passing a function instead of a
     * String. 3 arguments are passed to the callback:
     *
     * - Object that holds the information about the coordinates of the label
     * (`x` & `y` properties) and how the label is located in relation to the
     * pie (`alignment` property). `alignment` can by one of the following:
     * `'left'` (pie on the left side of the data label), `'right'` (pie on the
     * right side of the data label) or `'center'` (data label overlaps the
     * pie).
     *
     * - Object that holds the information about the position of the connector.
     * Its `touchingSliceAt` porperty tells the position of the place where the
     * connector touches the slice.
     *
     * - Data label options
     *
     * The function has to return an SVG path definition in array form (see the
     * example).
     */
    connectorShape?: (string|Function);
    /**
     * (Highcharts) The width of the line connecting the data label to the pie
     * slice.
     *
     * In styled mode, the connector stroke width is given in the
     * `.highcharts-data-label-connector` class.
     */
    connectorWidth?: number;
    /**
     * (Highcharts) Works only if `connectorShape` is `'crookedLine'`. It
     * defines how far from the vertical plot edge the coonnector path should be
     * crooked.
     */
    crookDistance?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts) The distance of the data label from the pie's edge. Negative
     * numbers put the data label on top of the pie slices. Can also be defined
     * as a percentage of pie's radius. Connectors are only shown for data
     * labels outside the pie.
     */
    distance?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts) Whether to render the connector as a soft arc or a line with
     * sharp break. Works only if `connectorShape` equals to `fixedOffset`.
     */
    softConnector?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (string|VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) A `pie` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pie` series are defined in plotOptions.pie.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPieOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesPieOptions { customProperty: string;
 * }
 *
 */
export interface SeriesPieOptions extends PlotPieOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `pie` series
     * type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[string, (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "pie";
    /**
     * Not available
     */
    xAxis?: undefined;
    /**
     * Not available
     */
    yAxis?: undefined;
}
/**
 * (Highstock) A pivot points indicator. If the type option is not specified, it
 * is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pivotpoints` series are defined in
 * plotOptions.pivotpoints.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPivotpointsOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesPivotpointsOptions {
 * customProperty: string; }
 *
 */
export interface SeriesPivotpointsOptions extends PlotPivotpointsOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "pivotpoints";
}
/**
 * Translation and scale for the plot area of a series.
 */
export interface SeriesPlotBoxObject {
    scaleX: number;
    scaleY: number;
    translateX: number;
    translateY: number;
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesPolygonDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesPolygonDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `polygon` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `polygon` series are defined in plotOptions.polygon.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPolygonOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesPolygonOptions {
 * customProperty: string; }
 *
 */
export interface SeriesPolygonOptions extends PlotPolygonOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `polygon` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "polygon";
}
/**
 * (Highstock) A `Percentage Price Oscillator` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `ppo` series are defined in plotOptions.ppo.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPpoOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesPpoOptions { customProperty: string;
 * }
 *
 */
export interface SeriesPpoOptions extends PlotPpoOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "ppo";
}
/**
 * (Highstock) A price envelopes indicator. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `priceenvelopes` series are defined in
 * plotOptions.priceenvelopes.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPriceenvelopesOptions` via an interface to
 * allow custom properties: ``` declare interface SeriesPriceenvelopesOptions {
 * customProperty: string; }
 *
 */
export interface SeriesPriceenvelopesOptions extends PlotPriceenvelopesOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "priceenvelopes";
}
/**
 * (Highstock) A `PSAR` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `psar` series are defined in plotOptions.psar.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPsarOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesPsarOptions { customProperty: string;
 * }
 *
 */
export interface SeriesPsarOptions extends PlotPsarOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "psar";
}
/**
 * (Highcharts) A `pyramid3d` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pyramid3d` series are defined in plotOptions.pyramid3d.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPyramid3dOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesPyramid3dOptions {
 * customProperty: string; }
 *
 */
export interface SeriesPyramid3dOptions extends PlotPyramid3dOptions, SeriesOptions {
    /**
     * Not available
     */
    allAreas?: undefined;
    /**
     * Not available
     */
    boostThreshold?: undefined;
    /**
     * (Highcharts) The center of the series. By default, it is centered in the
     * middle of the plot area, so it fills the plot area height.
     */
    center?: Array<(number|string)>;
    /**
     * Not available
     */
    colorAxis?: undefined;
    /**
     * Not available
     */
    compare?: undefined;
    /**
     * Not available
     */
    compareBase?: undefined;
    /**
     * (Highcharts) Polar charts only. Whether to connect the ends of a line
     * series plot across the extremes.
     */
    connectEnds?: boolean;
    /**
     * (Highcharts, Highstock) Whether to connect a graph line across null
     * points, or render a gap between the two points on either side of the
     * null.
     */
    connectNulls?: boolean;
    /**
     * Not available
     */
    dataSorting?: undefined;
    /**
     * (Highcharts) The end angle of the pie in degrees where 0 is top and 90 is
     * right. Defaults to `startAngle` plus 360.
     */
    endAngle?: number;
    /**
     * (Highcharts) If the total sum of the pie's values is 0, the series is
     * represented as an empty circle . The `fillColor` option defines the color
     * of that circle. Use pie.borderWidth to set the border thickness.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Defines when to display a gap in the graph, together with the
     * gapUnit option.
     *
     * In case when `dataGrouping` is enabled, points can be grouped into a
     * larger time span. This can make the grouped points to have a greater
     * distance than the absolute value of `gapSize` property, which will result
     * in disappearing graph completely. To prevent this situation the mentioned
     * distance between grouped points is used instead of previously defined
     * `gapSize`.
     *
     * In practice, this option is most often used to visualize gaps in time
     * series. In a stock chart, intraday data is available for daytime hours,
     * while gaps will appear in nights and weekends.
     */
    gapSize?: number;
    /**
     * (Highstock) Together with gapSize, this option defines where to draw gaps
     * in the graph.
     *
     * When the `gapUnit` is `"relative"` (default), a gap size of 5 means that
     * if the distance between two points is greater than 5 times that of the
     * two closest points, the graph will be broken.
     *
     * When the `gapUnit` is `"value"`, the gap is based on absolute axis
     * values, which on a datetime axis is milliseconds. This also applies to
     * the navigator series that inherits gap options from the base series.
     */
    gapUnit?: OptionsGapUnitValue;
    /**
     * (Highcharts) Equivalent to chart.ignoreHiddenSeries, this option tells
     * whether the series shall be redrawn as if the hidden point were `null`.
     *
     * The default value changed from `false` to `true` with Highcharts 3.0.
     */
    ignoreHiddenPoint?: boolean;
    /**
     * (Highcharts, Highstock) The line cap used for line ends and line joins on
     * the graph.
     */
    linecap?: SeriesLinecapValue;
    /**
     * (Highcharts, Highstock) Pixel width of the graph line.
     */
    lineWidth?: number;
    /**
     * (Highcharts) Options for the point markers of line-like series.
     * Properties like `fillColor`, `lineColor` and `lineWidth` define the
     * visual appearance of the markers. Other series types, like column series,
     * don't have markers, but have visual options on the series level instead.
     *
     * In styled mode, the markers can be styled with the `.highcharts-point`,
     * `.highcharts-point-hover` and `.highcharts-point-select` class names.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts) The minimum size for a pie in response to auto margins. The
     * pie will try to shrink to make room for data labels in side the plot
     * area, but only to this size.
     */
    minSize?: (number|string);
    /**
     * (Highcharts) If a point is sliced, moved out from the center, how many
     * pixels should it be moved?.
     */
    slicedOffset?: number;
    /**
     * (Highcharts) The start angle of the pie slices in degrees where 0 is top
     * and 90 right.
     */
    startAngle?: number;
    /**
     * (Highcharts, Highstock) Whether to apply steps to the line. Possible
     * values are `left`, `center` and `right`.
     */
    step?: OptionsStepValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "pyramid3d";
    /**
     * (Highstock) The parameter allows setting line series type and use OHLC
     * indicators. Data in OHLC format is required.
     */
    useOhlcData?: boolean;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesPyramidDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesPyramidDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `pyramid` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `pyramid` series are defined in plotOptions.pyramid.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesPyramidOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesPyramidOptions {
 * customProperty: string; }
 *
 */
export interface SeriesPyramidOptions extends PlotPyramidOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `pyramid`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "pyramid";
    /**
     * Not available
     */
    xAxis?: undefined;
    /**
     * Not available
     */
    yAxis?: undefined;
}
/**
 * (Highstock) A `ROC` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * Rate of change indicator (ROC). The indicator value for each point is defined
 * as:
 *
 * `(C - Cn) / Cn * 100`
 *
 * where: `C` is the close value of the point of the same x in the linked series
 * and `Cn` is the close value of the point `n` periods ago. `n` is set through
 * period.
 *
 * This series requires `linkedTo` option to be set.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `roc` series are defined in plotOptions.roc.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesRocOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesRocOptions { customProperty: string;
 * }
 *
 */
export interface SeriesRocOptions extends PlotRocOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "roc";
}
/**
 * (Highstock) A `RSI` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `rsi` series are defined in plotOptions.rsi.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesRsiOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesRsiOptions { customProperty: string;
 * }
 *
 */
export interface SeriesRsiOptions extends PlotRsiOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "rsi";
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesSankeyDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * Context for the node formatter function.
 */
export interface SeriesSankeyDataLabelsFormatterContextObject extends PointLabelObject {
    /**
     * The node object. The node name, if defined, is available through
     * `this.point.name`.
     */
    point: SankeyNodeObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Individual data label for each node.
 * The options are the same as the ones for series.sankey.dataLabels.
 */
export interface SeriesSankeyDataLabelsOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotDependencywheelDataLabelsAnimationOptions|PlotDependencywheelLevelsDataLabelsAnimationOptions|PlotOrganizationLevelsDataLabelsAnimationOptions|
PlotSankeyDataLabelsAnimationOptions|PlotSankeyLevelsDataLabelsAnimationOptions|SeriesDependencywheelNodesDataLabelsAnimationOptions|SeriesOrganizationNodesDataLabelsAnimationOptions|
SeriesSankeyNodesDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: SeriesSankeyDataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The format string specifying
     * what to show for _nodes_ in the sankey diagram. By default the
     * `nodeFormatter` returns `{point.name}`.
     */
    nodeFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback to format data labels
     * for _nodes_ in the sankey diagram. The `nodeFormat` option takes
     * precedence over the `nodeFormatter`.
     */
    nodeFormatter?: SeriesSankeyDataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
 * animation when a series is displayed for the `dataLabels`. The animation can
 * also be set as a configuration object. Please note that this option only
 * applies to the initial animation. For other animations, see chart.animation
 * and the animation parameter under the API methods. The following properties
 * are supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesSankeyNodesDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The animation delay time in
     * milliseconds. Set to `0` renders dataLabel immediately. As `undefined`
     * inherits defer time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) A collection of options for the individual nodes. The nodes in a
 * sankey diagram are auto-generated instances of `Highcharts.Point`, but
 * options can be applied here and linked by the `id`.
 */
export interface SeriesSankeyNodesOptionsObject {
    /**
     * (Highcharts) The color of the auto generated node.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color index of the auto generated node, especially for
     * use in styled mode.
     */
    colorIndex?: number;
    /**
     * (Highcharts) An optional column index of where to place the node. The
     * default behaviour is to place it next to the preceding node. Note that
     * this option name is counter intuitive in inverted charts, like for
     * example an organization chart rendered top down. In this case the
     * "columns" are horizontal.
     */
    column?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Individual data label for each
     * node. The options are the same as the ones for series.sankey.dataLabels.
     */
    dataLabels?: (SeriesOrganizationDataLabelsOptionsObject|SeriesSankeyDataLabelsOptionsObject|SeriesSankeyDataLabelsOptionsObject|Array<SeriesOrganizationDataLabelsOptionsObject>|
Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) The job description for the node card, will be inserted by
     * the default `dataLabel.nodeFormatter`.
     */
    description?: string;
    /**
     * (Highcharts) The id of the auto-generated node, refering to the `from` or
     * `to` setting of the link.
     */
    id?: string;
    /**
     * (Highcharts) An image for the node card, will be inserted by the default
     * `dataLabel.nodeFormatter`.
     */
    image?: string;
    /**
     * (Highcharts) Layout for the node's children. If `hanging`, this node's
     * children will hang below their parent, allowing a tighter packing of
     * nodes in the diagram.
     */
    layout?: SeriesOrganizationNodesLayoutValue;
    /**
     * (Highcharts) An optional level index of where to place the node. The
     * default behaviour is to place it next to the preceding node. Alias of
     * `nodes.column`, but in inverted sankeys and org charts, the levels are
     * laid out as rows.
     */
    level?: number;
    /**
     * (Highcharts) The name to display for the node in data labels and
     * tooltips. Use this when the name is different from the `id`. Where the id
     * must be unique for each node, this is not necessary for the name.
     */
    name?: string;
    /**
     * (Highcharts) In a horizontal layout, the vertical offset of a node in
     * terms of weight. Positive values shift the node downwards, negative shift
     * it upwards. In a vertical layout, like organization chart, the offset is
     * horizontal.
     *
     * If a percantage string is given, the node is offset by the percentage of
     * the node size plus `nodePadding`.
     */
    offset?: (number|string);
    /**
     * (Highcharts) The job title for the node card, will be inserted by the
     * default `dataLabel.nodeFormatter`.
     */
    title?: string;
}
/**
 * (Highcharts) A `sankey` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `sankey` series are defined in plotOptions.sankey.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesSankeyOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesSankeyOptions { customProperty:
 * string; }
 *
 */
export interface SeriesSankeyOptions extends PlotSankeyOptions, SeriesOptions {
    /**
     * Not available
     */
    borderRadius?: undefined;
    /**
     * (Highcharts) An array of data points for the series. For the `sankey`
     * series type, points can be given in the following way:
     *
     * An array of objects with named values. The following snippet shows only a
     * few settings, see the complete options set below. If the total number of
     * data points exceeds the series' turboThreshold, this option is not
     * available. (see online documentation for example)
     */
    data?: Array<SeriesSankeyPointOptionsObject>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    depth?: undefined;
    /**
     * Not available
     */
    edgeColor?: undefined;
    /**
     * Not available
     */
    edgeWidth?: undefined;
    /**
     * Not available
     */
    grouping?: undefined;
    /**
     * Not available
     */
    groupPadding?: undefined;
    /**
     * Not available
     */
    groupZPadding?: undefined;
    /**
     * Not available
     */
    maxPointWidth?: undefined;
    /**
     * (Highcharts) A collection of options for the individual nodes. The nodes
     * in a sankey diagram are auto-generated instances of `Highcharts.Point`,
     * but options can be applied here and linked by the `id`.
     */
    nodes?: Array<SeriesSankeyNodesOptionsObject>;
    /**
     * Not available
     */
    pointPadding?: undefined;
    /**
     * Not available
     */
    pointWidth?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "sankey";
}
/**
 * (Highcharts) An array of data points for the series. For the `sankey` series
 * type, points can be given in the following way:
 *
 * An array of objects with named values. The following snippet shows only a few
 * settings, see the complete options set below. If the total number of data
 * points exceeds the series' turboThreshold, this option is not available. (see
 * online documentation for example)
 */
export interface SeriesSankeyPointOptionsObject {
    /**
     * (Highcharts) Accessibility options for a data point.
     */
    accessibility?: PointAccessibilityOptionsObject;
    /**
     * (Highcharts, Gantt) An additional, individual class name for the data
     * point's graphic representation.
     */
    className?: string;
    /**
     * (Highcharts) The color for the individual _link_. By default, the link
     * color is the same as the node it extends from. The `series.fillOpacity`
     * option also applies to the points, so when setting a specific link color,
     * consider setting the `fillOpacity` to 1.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Gantt) A specific color index to use for the point, so its
     * graphic representations are given the class name `highcharts-color-{n}`.
     * In styled mode this will change the color of the graphic. In non-styled
     * mode, the color by is set by the `fill` attribute, so the change in class
     * name won't have a visual effect by default.
     */
    colorIndex?: number;
    /**
     * (Highcharts) A reserved subspace to store options and values for
     * customized functionality. Here you can add additional data for your own
     * event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts) Individual data label for each point. The options are the
     * same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptions|SeriesOrganizationDataLabelsOptionsObject|SeriesSankeyDataLabelsOptionsObject|Array<SeriesOrganizationDataLabelsOptionsObject>|
Array<SeriesSankeyDataLabelsOptionsObject>);
    /**
     * (Highcharts) A description of the point to add to the screen reader
     * information about the point.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Gantt) The individual point events.
     */
    events?: PointEventsOptionsObject;
    /**
     * (Highcharts) The node that the link runs from.
     */
    from?: string;
    /**
     * (Highcharts, Highstock, Gantt) An id for the point. This can be used
     * after render time to get a pointer to the point object through
     * `chart.get()`.
     */
    id?: string;
    /**
     * (Highcharts) The rank for this point's data label in case of collision.
     * If two data labels are about to overlap, only the one with the highest
     * `labelrank` will be drawn.
     */
    labelrank?: number;
    /**
     * (Highcharts) The name of the point as shown in the legend, tooltip,
     * dataLabels, etc.
     */
    name?: string;
    /**
     * (Highcharts) Whether the link goes out of the system.
     */
    outgoing?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts) The node that the link runs to.
     */
    to?: string;
    /**
     * (Highcharts) The weight of the link.
     */
    weight?: (number|null);
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesScatter3dDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesScatter3dDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `scatter3d` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * scatter3d](#plotOptions.scatter3d).
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `scatter3d` series are defined in plotOptions.scatter3d.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesScatter3dOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesScatter3dOptions {
 * customProperty: string; }
 *
 */
export interface SeriesScatter3dOptions extends PlotScatter3dOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `scatter3d`
     * series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 values. In this case, the values correspond
     * to `x,y,z`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(Array<number>|PointOptionsObject)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "scatter3d";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesScatterDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesScatterDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `scatter` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `scatter` series are defined in plotOptions.scatter.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesScatterOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesScatterOptions {
 * customProperty: string; }
 *
 */
export interface SeriesScatterOptions extends PlotScatterOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `scatter` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "scatter";
    /**
     * Not available
     */
    useOhlcData?: undefined;
}
/**
 * (Highstock) A Slow Stochastic indicator. If the type option is not specified,
 * it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `slowstochastic` series are defined in
 * plotOptions.slowstochastic.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesSlowstochasticOptions` via an interface to
 * allow custom properties: ``` declare interface SeriesSlowstochasticOptions {
 * customProperty: string; }
 *
 */
export interface SeriesSlowstochasticOptions extends PlotSlowstochasticOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "slowstochastic";
}
/**
 * (Highstock) A `SMA` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `sma` series are defined in plotOptions.sma.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesSmaOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesSmaOptions { customProperty: string;
 * }
 *
 */
export interface SeriesSmaOptions extends PlotSmaOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "sma";
    /**
     * Not available
     */
    useOhlcData?: undefined;
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesSolidgaugeDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesSolidgaugeDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `solidgauge` series. If the type option is not specified, it
 * is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `solidgauge` series are defined in plotOptions.solidgauge.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesSolidgaugeOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesSolidgaugeOptions {
 * customProperty: string; }
 *
 */
export interface SeriesSolidgaugeOptions extends PlotSolidgaugeOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `solidgauge`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     *
     * The typical gauge only contains a single data value.
     */
    data?: Array<(number|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    dial?: undefined;
    /**
     * Not available
     */
    pivot?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "solidgauge";
    /**
     * Not available
     */
    wrap?: undefined;
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesSplineDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesSplineDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `spline` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `spline` series are defined in plotOptions.spline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesSplineOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesSplineOptions { customProperty:
 * string; }
 *
 */
export interface SeriesSplineOptions extends PlotSplineOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `spline` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "spline";
}
/**
 * (Highcharts, Highstock) Options for the halo appearing around the hovered
 * point in line-type series as well as outside the hovered slice in pie charts.
 * By default the halo is filled by the current point or series color with an
 * opacity of 0.25\. The halo can be disabled by setting the `halo` option to
 * `null`.
 *
 * In styled mode, the halo is styled with the `.highcharts-halo` class, with
 * colors inherited from `.highcharts-color-{n}`.
 */
export interface SeriesStatesHoverHaloOptionsObject {
    /**
     * (Highcharts, Highstock) A collection of SVG attributes to override the
     * appearance of the halo, for example `fill`, `stroke` and `stroke-width`.
     */
    attributes?: (PlotTilemapStatesHoverHaloAttributesOptions|SVGAttributes);
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Opacity for the halo unless a specific fill is
     * overridden using the `attributes` setting. Note that Highcharts is only
     * able to apply opacity to colors of hex or rgb(a) formats.
     */
    opacity?: number;
    /**
     * (Highcharts, Highstock) The pixel size of the halo. For point markers
     * this is the radius of the halo. For pie slices it is the width of the
     * halo outside the slice. For bubbles it defaults to 5 and is the width of
     * the halo outside the bubble.
     */
    size?: number;
}
/**
 * (Highstock) Options for the hovered series. These settings override the
 * normal state options when a series is moused over or touched.
 */
export interface SeriesStatesHoverOptionsObject {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (string|ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highmaps) The relative brightness of the point when hovered, relative to
     * the normal point color.
     */
    brightness?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Enable separate styles for the hovered series to visualize
     * that the user hovers either the series itself or the legend.
     */
    enabled?: boolean;
    /**
     * (Highstock) The fill or background color of the flag.
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Options for the halo appearing around the hovered
     * point in line-type series as well as outside the hovered slice in pie
     * charts. By default the halo is filled by the current point or series
     * color with an opacity of 0.25\. The halo can be disabled by setting the
     * `halo` option to `null`.
     *
     * In styled mode, the halo is styled with the `.highcharts-halo` class,
     * with colors inherited from `.highcharts-color-{n}`.
     */
    halo?: (SeriesStatesHoverHaloOptionsObject|null);
    /**
     * (Highstock) The color of the line/border of the flag.
     */
    lineColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) Pixel width of the graph line. By default this
     * property is undefined, and the `lineWidthPlus` property dictates how much
     * to increase the linewidth from normal state.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) The additional line width for the graph of a
     * hovered series.
     */
    lineWidthPlus?: number;
    /**
     * (Highcharts, Highstock, Gantt) Opacity for the links between nodes in the
     * sankey diagram in hover mode.
     */
    linkOpacity?: number;
    /**
     * (Highcharts) The opacity of a point in treemap. When a point has
     * children, the visibility of the children is determined by the opacity.
     */
    opacity?: number;
    /**
     * (Highcharts) The shadow option for hovered state.
     */
    shadow?: boolean;
}
/**
 * (Highstock) The opposite state of a hover for series.
 */
export interface SeriesStatesInactiveOptionsObject {
    /**
     * (Highstock) Animation when not hovering over the marker.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highstock) Enable or disable the inactive state for a series
     */
    enabled?: boolean;
    /**
     * (Highcharts) Opacity for the links between nodes in the sankey diagram in
     * inactive mode.
     */
    linkOpacity?: number;
    /**
     * (Highstock) Opacity of inactive markers.
     */
    opacity?: number;
}
/**
 * (Highstock) The normal state of a series, or for point items in column, pie
 * and similar series. Currently only used for setting animation when returning
 * to normal state from hover.
 */
export interface SeriesStatesNormalOptionsObject {
    /**
     * (Highstock) Animation when returning to normal state after hovering.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
}
/**
 * (Highcharts) A wrapper object for all the series options in specific states.
 */
export interface SeriesStatesOptionsObject {
    /**
     * (Highstock) Options for the hovered series. These settings override the
     * normal state options when a series is moused over or touched.
     */
    hover?: SeriesStatesHoverOptionsObject;
    /**
     * (Highstock) The opposite state of a hover for series.
     */
    inactive?: SeriesStatesInactiveOptionsObject;
    /**
     * (Highstock) The normal state of a series, or for point items in column,
     * pie and similar series. Currently only used for setting animation when
     * returning to normal state from hover.
     */
    normal?: SeriesStatesNormalOptionsObject;
    /**
     * (Highstock) Specific options for point in selected states, after being
     * selected by allowPointSelect or programmatically.
     */
    select?: SeriesStatesSelectOptionsObject;
}
/**
 * (Highstock) Specific options for point in selected states, after being
 * selected by allowPointSelect or programmatically.
 */
export interface SeriesStatesSelectOptionsObject {
    /**
     * (Highcharts, Highstock) Animation setting for hovering the graph in
     * line-type series.
     */
    animation?: (boolean|Partial<AnimationOptionsObject>);
    /**
     * (Highmaps) The border color of the point in this state.
     */
    borderColor?: (string|ColorString|GradientColorObject|PatternObject);
    /**
     * (Highmaps) The border width of the point in this state
     */
    borderWidth?: number;
    /**
     * (Highmaps) The color of the shape in this state.
     */
    color?: (string|ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Enable separate styles for the hovered series to visualize
     * that the user hovers either the series itself or the legend.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) Options for the halo appearing around the hovered
     * point in line-type series as well as outside the hovered slice in pie
     * charts. By default the halo is filled by the current point or series
     * color with an opacity of 0.25\. The halo can be disabled by setting the
     * `halo` option to `null`.
     *
     * In styled mode, the halo is styled with the `.highcharts-halo` class,
     * with colors inherited from `.highcharts-color-{n}`.
     */
    halo?: (SeriesStatesHoverHaloOptionsObject|null);
    /**
     * (Highcharts, Highstock) Pixel width of the graph line. By default this
     * property is undefined, and the `lineWidthPlus` property dictates how much
     * to increase the linewidth from normal state.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock) The additional line width for the graph of a
     * hovered series.
     */
    lineWidthPlus?: number;
}
/**
 * (Highstock) A Stochastic indicator. If the type option is not specified, it
 * is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `stochastic` series are defined in plotOptions.stochastic.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesStochasticOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesStochasticOptions {
 * customProperty: string; }
 *
 */
export interface SeriesStochasticOptions extends PlotStochasticOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "stochastic";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesStreamgraphDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesStreamgraphDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `streamgraph` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `streamgraph` series are defined in
 * plotOptions.streamgraph.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesStreamgraphOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesStreamgraphOptions {
 * customProperty: string; }
 *
 */
export interface SeriesStreamgraphOptions extends PlotStreamgraphOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `streamgraph` series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "streamgraph";
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesSunburstDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesSunburstDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Can set `dataLabels` on all points
 * which lies on the same level.
 */
export interface SeriesSunburstDataLabelsOptionsObject {
    /**
     * (Highcharts) Alignment method for data labels. Possible values are:
     *
     * - `toPlotEdges`: Each label touches the nearest vertical edge of the plot
     * area.
     *
     * - `connectors`: Connectors have the same x position and the widest label
     * of each half (left & right) touches the nearest vertical edge of the plot
     * area.
     */
    alignTo?: string;
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotSunburstDataLabelsAnimationOptions|PlotSunburstLevelsDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The color of the line connecting the data label to the pie
     * slice. The default color is the same as the point's color.
     *
     * In styled mode, the connector stroke is given in the
     * `.highcharts-data-label-connector` class.
     */
    connectorColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts) The distance from the data label to the connector. Note that
     * data labels also have a default `padding`, so in order for the connector
     * to touch the text, the `padding` must also be 0.
     */
    connectorPadding?: number;
    /**
     * (Highcharts) Specifies the method that is used to generate the connector
     * path. Highcharts provides 3 built-in connector shapes: `'fixedOffset'`
     * (default), `'straight'` and `'crookedLine'`. Using `'crookedLine'` has
     * the most sense (in most of the cases) when `'alignTo'` is set.
     *
     * Users can provide their own method by passing a function instead of a
     * String. 3 arguments are passed to the callback:
     *
     * - Object that holds the information about the coordinates of the label
     * (`x` & `y` properties) and how the label is located in relation to the
     * pie (`alignment` property). `alignment` can by one of the following:
     * `'left'` (pie on the left side of the data label), `'right'` (pie on the
     * right side of the data label) or `'center'` (data label overlaps the
     * pie).
     *
     * - Object that holds the information about the position of the connector.
     * Its `touchingSliceAt` porperty tells the position of the place where the
     * connector touches the slice.
     *
     * - Data label options
     *
     * The function has to return an SVG path definition in array form (see the
     * example).
     */
    connectorShape?: (string|Function);
    /**
     * (Highcharts) The width of the line connecting the data label to the pie
     * slice.
     *
     * In styled mode, the connector stroke width is given in the
     * `.highcharts-data-label-connector` class.
     */
    connectorWidth?: number;
    /**
     * (Highcharts) Works only if `connectorShape` is `'crookedLine'`. It
     * defines how far from the vertical plot edge the coonnector path should be
     * crooked.
     */
    crookDistance?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts) The distance of the data label from the pie's edge. Negative
     * numbers put the data label on top of the pie slices. Can also be defined
     * as a percentage of pie's radius. Connectors are only shown for data
     * labels outside the pie.
     */
    distance?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Decides how the data label will
     * be rotated relative to the perimeter of the sunburst. Valid values are
     * `auto`, `circular`, `parallel` and `perpendicular`. When `auto`, the best
     * fit will be computed for the point. The `circular` option works similiar
     * to `auto`, but uses the `textPath` feature - labels are curved, resulting
     * in a better layout, however multiple lines and `textOutline` are not
     * supported.
     *
     * The `series.rotation` option takes precedence over `rotationMode`.
     */
    rotationMode?: OptionsRotationModeValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The shadow of the box. Works
     * best with `borderWidth` or `backgroundColor`. Since 2.3 the shadow can be
     * an object configuration containing `color`, `offsetX`, `offsetY`,
     * `opacity` and `width`.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts) Whether to render the connector as a soft arc or a line with
     * sharp break. Works only if `connectorShape` equals to `fixedOffset`.
     */
    softConnector?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * (Highcharts) A `sunburst` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `sunburst` series are defined in plotOptions.sunburst.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesSunburstOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesSunburstOptions {
 * customProperty: string; }
 *
 */
export interface SeriesSunburstOptions extends PlotSunburstOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `treemap`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `value` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "sunburst";
}
/**
 * (Highstock) A `Supertrend indicator` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `supertrend` series are defined in plotOptions.supertrend.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesSupertrendOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesSupertrendOptions {
 * customProperty: string; }
 *
 */
export interface SeriesSupertrendOptions extends PlotSupertrendOptions, SeriesOptions {
    /**
     * Not available
     */
    data?: undefined;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "supertrend";
}
/**
 * (Highstock) A `TEMA` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `tema` series are defined in plotOptions.tema.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesTemaOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesTemaOptions { customProperty: string;
 * }
 *
 */
export interface SeriesTemaOptions extends PlotTemaOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "tema";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesTilemapDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highmaps) Style options for the guide box. The guide box has one
 * state by default, the `default` state.
 */
export interface SeriesTilemapDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highmaps) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highmaps) A `tilemap` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `tilemap` series are defined in plotOptions.tilemap.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesTilemapOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesTilemapOptions {
 * customProperty: string; }
 *
 */
export interface SeriesTilemapOptions extends PlotTilemapOptions, SeriesOptions {
    /**
     * (Highcharts, Highmaps) An array of data points for the series. For the
     * `tilemap` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,y,value`. If the first value is a string, it is applied
     * as the name of the point, and the `x` value is inferred. The `x` value
     * can also be omitted, in which case the inner arrays should be of length
     * 2\. Then the `x` value is automatically calculated, either starting at 0
     * and incremented by 1, or from `pointStart` and `pointInterval` given in
     * the series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The objects are point
     * configuration objects as seen below. If the total number of data points
     * exceeds the series' turboThreshold, this option is not available. (see
     * online documentation for example)
     *
     * Note that for some tileShapes the grid coordinates are offset.
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    mapData?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "tilemap";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesTimelineDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesTimelineDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) The `timeline` series. If the type option is not specified, it
 * is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `timeline` series are defined in plotOptions.timeline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesTimelineOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesTimelineOptions {
 * customProperty: string; }
 *
 */
export interface SeriesTimelineOptions extends PlotTimelineOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `timeline`
     * series type, points can be given with three general parameters, `name`,
     * `label`, and `description`:
     *
     * Example: (see online documentation for example) If all points
     * additionally have the `x` values, and xAxis type is set to `datetime`,
     * then events are laid out on a true time axis, where their placement
     * reflects the actual time between them.
     */
    data?: Array<PointOptionsObject>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "timeline";
}
/**
 * (Highstock) A configuration object for the tooltip rendering of each single
 * series. Properties are inherited from tooltip, but only the following
 * properties can be defined on a series level.
 */
export interface SeriesTooltipOptionsObject {
    /**
     * (Highstock) How many decimals to show for the `point.change` value when
     * the `series.compare` option is set. This is overridable in each series'
     * tooltip options object. The default is to preserve all decimals.
     */
    changeDecimals?: number;
    /**
     * (Highstock) The HTML of the cluster point's in the tooltip. Works only
     * with marker-clusters module and analogously to pointFormat.
     *
     * The cluster tooltip can be also formatted using `tooltip.formatter`
     * callback function and `point.isCluster` flag.
     */
    clusterFormat?: object;
    /**
     * (Highcharts, Highstock, Gantt) For series on a datetime axes, the date
     * format in the tooltip's header will by default be guessed based on the
     * closest data points. This member gives the default string representations
     * used for each unit. For an overview of the replacement codes, see
     * dateFormat.
     */
    dateTimeLabelFormats?: Dictionary<string>;
    /**
     * (Highstock) Distance from point to tooltip in pixels.
     */
    distance?: number;
    /**
     * (Highstock) Whether the tooltip should follow the mouse as it moves
     * across columns, pie slices and other point types with an extent. By
     * default it behaves this way for pie, polygon, map, sankey and wordcloud
     * series by override in the `plotOptions` for those series types.
     *
     * For touch moves to behave the same way, followTouchMove must be `true`
     * also.
     */
    followPointer?: boolean;
    /**
     * (Highstock) Whether the tooltip should update as the finger moves on a
     * touch device. If this is `true` and chart.panning is
     * set,`followTouchMove` will take over one-finger touches, so the user
     * needs to use two fingers for zooming and panning.
     *
     * Note the difference to followPointer that only defines the _position_ of
     * the tooltip. If `followPointer` is false in for example a column series,
     * the tooltip will show above or below the column, but as `followTouchMove`
     * is true, the tooltip will jump from column to column as the user swipes
     * across the plot area.
     */
    followTouchMove?: boolean;
    /**
     * (Highstock) A string to append to the tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highstock) The HTML of the tooltip header line. Variables are enclosed
     * by curly brackets. Available variables are `point.key`, `series.name`,
     * `series.color` and other members from the `point` and `series` objects.
     * The `point.key` variable contains the category name, x value or datetime
     * string depending on the type of axis. For datetime axes, the `point.key`
     * date format can be set using `tooltip.xDateFormat`.
     */
    headerFormat?: string;
    /**
     * (Highcharts) The format string specifying what to show for _nodes_ in
     * tooltip of a diagram series, as opposed to links.
     */
    nodeFormat?: string;
    /**
     * (Highcharts) A callback for defining the format for _nodes_ in the
     * chart's tooltip, as opposed to links.
     */
    nodeFormatter?: FormatterCallbackFunction<SankeyNodeObject>;
    /**
     * (Highstock) The HTML of the null point's line in the tooltip. Works
     * analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highstock) Callback function to format the text of the tooltip for
     * visible null points. Works analogously to formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highstock) The HTML of the point's line in the tooltip. Variables are
     * enclosed by curly brackets. Available variables are `point.x`, `point.y`,
     * `series.name` and `series.color` and other properties on the same form.
     * Furthermore, `point.y` can be extended by the `tooltip.valuePrefix` and
     * `tooltip.valueSuffix` variables. This can also be overridden for each
     * series, which makes it a good hook for displaying units.
     *
     * In styled mode, the dot is colored by a class name rather than the point
     * color.
     */
    pointFormat?: string;
    /**
     * (Highstock) A callback function for formatting the HTML output for a
     * single point in the tooltip. Like the `pointFormat` string, but with more
     * flexibility.
     */
    pointFormatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highstock) Number of decimals in indicator series.
     */
    valueDecimals?: number;
    /**
     * (Highstock) A string to prepend to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highstock) A string to append to each series' y value. Overridable in
     * each series' tooltip options object.
     */
    valueSuffix?: string;
    /**
     * (Highcharts, Highstock, Gantt) The format for the date in the tooltip
     * header if the X axis is a datetime axis. The default is a best guess
     * based on the smallest distance between points in the chart.
     */
    xDateFormat?: string;
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesTreemapDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesTreemapDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `treemap` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `treemap` series are defined in plotOptions.treemap.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesTreemapOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesTreemapOptions {
 * customProperty: string; }
 *
 */
export interface SeriesTreemapOptions extends PlotTreemapOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `treemap`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `value` options. Example: (see online documentation for
     * example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "treemap";
}
/**
 * (Highstock) A `TrendLine` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `trendline` series are defined in plotOptions.trendline.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesTrendlineOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesTrendlineOptions {
 * customProperty: string; }
 *
 */
export interface SeriesTrendlineOptions extends PlotTrendlineOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "trendline";
}
/**
 * (Highstock) A `TRIX` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `trix` series are defined in plotOptions.trix.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesTrixOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesTrixOptions { customProperty: string;
 * }
 *
 */
export interface SeriesTrixOptions extends PlotTrixOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "trix";
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesVariablepieDataDataLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * dataLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesVariablepieDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `variablepie` series. If the type option is not specified, it
 * is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `variablepie` series are defined in
 * plotOptions.variablepie.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesVariablepieOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesVariablepieOptions {
 * customProperty: string; }
 *
 */
export interface SeriesVariablepieOptions extends PlotVariablepieOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the
     * `variablepie` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 2 values. In this case, the numerical values
     * will be interpreted as `y, z` options. Example: (see online documentation
     * for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "variablepie";
    /**
     * Not available
     */
    xAxis?: undefined;
    /**
     * Not available
     */
    yAxis?: undefined;
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesVariwideDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesVariwideDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `variwide` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `variwide` series are defined in plotOptions.variwide.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesVariwideOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesVariwideOptions {
 * customProperty: string; }
 *
 */
export interface SeriesVariwideOptions extends PlotVariwideOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `variwide`
     * series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 or 2 values. In this case, the values
     * correspond to `x,y,z`. If the first value is a string, it is applied as
     * the name of the point, and the `x` value is inferred. The `x` value can
     * also be omitted, in which case the inner arrays should be of length 2.
     * Then the `x` value is automatically calculated, either starting at 0 and
     * incremented by 1, or from `pointStart` and `pointInterval` given in the
     * series options. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number]|[(number|string), number, number]|PointOptionsObject)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "variwide";
}
/**
 * (Highstock) A `Volume By Price (VBP)` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `vbp` series are defined in plotOptions.vbp.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesVbpOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesVbpOptions { customProperty: string;
 * }
 *
 */
export interface SeriesVbpOptions extends PlotVbpOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "vbp";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesVectorDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesVectorDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `vector` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `vector` series are defined in plotOptions.vector.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesVectorOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesVectorOptions { customProperty:
 * string; }
 *
 */
export interface SeriesVectorOptions extends PlotVectorOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `vector` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 4 values. In this case, the values correspond
     * to to `x,y,length,direction`. If the first value is a string, it is
     * applied as the name of the point, and the `x` value is inferred. (see
     * online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number, number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "vector";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesVennDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesVennDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `venn` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `venn` series are defined in plotOptions.venn.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesVennOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesVennOptions { customProperty: string;
 * }
 *
 */
export interface SeriesVennOptions extends PlotVennOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `scatter`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<PointOptionsObject>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * Not available
     */
    stack?: undefined;
    /**
     * Not available
     */
    steps?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "venn";
    /**
     * Not available
     */
    xAxis?: undefined;
    /**
     * Not available
     */
    yAxis?: undefined;
}
/**
 * (Highstock) A `Volume Weighted Average Price (VWAP)` series. If the type
 * option is not specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `vwap` series are defined in plotOptions.vwap.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesVwapOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesVwapOptions { customProperty: string;
 * }
 *
 */
export interface SeriesVwapOptions extends PlotVwapOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "vwap";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesWaterfallDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesWaterfallDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `waterfall` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `waterfall` series are defined in plotOptions.waterfall.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesWaterfallOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesWaterfallOptions {
 * customProperty: string; }
 *
 */
export interface SeriesWaterfallOptions extends PlotWaterfallOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `waterfall`
     * series type, points can be given in the following ways:
     *
     * 1. An array of numerical values. In this case, the numerical values will
     * be interpreted as `y` options. The `x` values will be automatically
     * calculated, either starting at 0 and incremented by 1, or from
     * `pointStart` and `pointInterval` given in the series options. If the axis
     * has categories, these will be used. Example: (see online documentation
     * for example)
     *
     * 2. An array of arrays with 2 values. In this case, the values correspond
     * to `x,y`. If the first value is a string, it is applied as the name of
     * the point, and the `x` value is inferred. (see online documentation for
     * example)
     *
     * 3. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<(number|[(number|string), (number|null)]|null|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "waterfall";
}
/**
 * (Highstock) A `Williams %R Oscillator` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `williamsr` series are defined in plotOptions.williamsr.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesWilliamsrOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesWilliamsrOptions {
 * customProperty: string; }
 *
 */
export interface SeriesWilliamsrOptions extends PlotWilliamsrOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "williamsr";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesWindbarbDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock) Style options for the guide box. The guide box has
 * one state by default, the `default` state.
 */
export interface SeriesWindbarbDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock) A `windbarb` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `windbarb` series are defined in plotOptions.windbarb.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesWindbarbOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesWindbarbOptions {
 * customProperty: string; }
 *
 */
export interface SeriesWindbarbOptions extends PlotWindbarbOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock) An array of data points for the series. For the
     * `windbarb` series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 3 values. In this case, the values correspond
     * to `x,value,direction`. If the first value is a string, it is applied as
     * the name of the point, and the `x` value is inferred. (see online
     * documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([(number|string), number, number]|PointOptionsObject)>;
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "windbarb";
}
/**
 * (Highstock) A `WMA` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `wma` series are defined in plotOptions.wma.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesWmaOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesWmaOptions { customProperty: string;
 * }
 *
 */
export interface SeriesWmaOptions extends PlotWmaOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "wma";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesWordcloudDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) Style options for the guide box. The guide box has one state by
 * default, the `default` state.
 */
export interface SeriesWordcloudDataDragDropGuideBoxOptions {
    /**
     * (Highcharts) Style options for the guide box default state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts) A `wordcloud` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `wordcloud` series are defined in plotOptions.wordcloud.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesWordcloudOptions` via an interface to allow
 * custom properties: ``` declare interface SeriesWordcloudOptions {
 * customProperty: string; }
 *
 */
export interface SeriesWordcloudOptions extends PlotWordcloudOptions, SeriesOptions {
    /**
     * (Highcharts) An array of data points for the series. For the `wordcloud`
     * series type, points can be given in the following ways:
     *
     * 1. An array of arrays with 2 values. In this case, the values correspond
     * to `name,weight`. (see online documentation for example)
     *
     * 2. An array of objects with named values. The following snippet shows
     * only a few settings, see the complete options set below. If the total
     * number of data points exceeds the series' turboThreshold, this option is
     * not available. (see online documentation for example)
     */
    data?: Array<([string, number]|PointOptionsObject)>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "wordcloud";
}
/**
 * (Highcharts, Highstock, Gantt) Enable or disable the initial animation when a
 * series is displayed for the `dataLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface SeriesXrangeDataDataLabelsAnimationOptions {
    /**
     * (Highcharts, Highstock, Gantt) The animation delay time in milliseconds.
     * Set to `0` renders dataLabel immediately. As `undefined` inherits defer
     * time from the series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts, Highstock, Gantt) Style options for the guide box. The guide box
 * has one state by default, the `default` state.
 */
export interface SeriesXrangeDataDragDropGuideBoxOptions {
    /**
     * (Highcharts, Highstock, Gantt) Style options for the guide box default
     * state.
     */
    default?: DragDropGuideBoxOptionsObject;
}
/**
 * (Highcharts, Highstock, Gantt) An `xrange` series. If the type option is not
 * specified, it is inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `xrange` series are defined in plotOptions.xrange.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesXrangeOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesXrangeOptions { customProperty:
 * string; }
 *
 */
export interface SeriesXrangeOptions extends PlotXrangeOptions, SeriesOptions {
    /**
     * (Highcharts, Highstock, Gantt) An array of data points for the series.
     * For the `xrange` series type, points can be given in the following ways:
     *
     * 1. An array of objects with named values. The objects are point
     * configuration objects as seen below. (see online documentation for
     * example)
     */
    data?: Array<XrangePointOptionsObject>;
    /**
     * Not available
     */
    depth?: undefined;
    /**
     * Not available
     */
    edgeColor?: undefined;
    /**
     * Not available
     */
    edgeWidth?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "xrange";
}
/**
 * (Highstock) A `Zig Zag` series. If the type option is not specified, it is
 * inherited from chart.type.
 *
 * In TypeScript the type option must always be set.
 *
 * Configuration options for the series are given in three levels:
 *
 * 1. Options for all series in a chart are defined in the plotOptions.series
 * object.
 *
 * 2. Options for all `zigzag` series are defined in plotOptions.zigzag.
 *
 * 3. Options for one single series are given in the series instance array. (see
 * online documentation for example)
 *
 * You have to extend the `SeriesZigzagOptions` via an interface to allow custom
 * properties: ``` declare interface SeriesZigzagOptions { customProperty:
 * string; }
 *
 */
export interface SeriesZigzagOptions extends PlotZigzagOptions, SeriesOptions {
    /**
     * Not available
     */
    dataParser?: undefined;
    /**
     * Not available
     */
    dataURL?: undefined;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) This property is only in
     * TypeScript non-optional and might be `undefined` in series objects from
     * unknown sources.
     */
    type: "zigzag";
}
/**
 * (Highcharts, Highstock) An array defining zones within a series. Zones can be
 * applied to the X axis, Y axis or Z axis for bubbles, according to the
 * `zoneAxis` option. The zone definitions have to be in ascending order
 * regarding to the value.
 *
 * In styled mode, the color zones are styled with the `.highcharts-zone-{n}`
 * class, or custom classed from the `className` option (view live demo).
 */
export interface SeriesZonesOptionsObject {
    /**
     * (Highcharts, Highstock) Styled mode only. A custom class name for the
     * zone.
     */
    className?: string;
    /**
     * (Highcharts, Highstock) Defines the color of the series.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) A name for the dash style to use for the graph.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock) Defines the fill color for the series (in area
     * type series)
     */
    fillColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock) The value up to where the zone extends, if
     * undefined the zones stretches to the last value in the series.
     */
    value?: number;
}
/**
 * The shadow options.
 */
export interface ShadowOptionsObject {
    /**
     * The shadow color.
     */
    color?: ColorString;
    /**
     * The horizontal offset from the element.
     */
    offsetX?: number;
    /**
     * The vertical offset from the element.
     */
    offsetY?: number;
    /**
     * The shadow opacity.
     */
    opacity?: number;
    /**
     * The shadow width or distance from the element.
     */
    width?: number;
}
export interface SizeObject {
    height: number;
    width: number;
}
/**
 * (Highcharts) Stack of data points
 */
export interface StackItemObject {
    /**
     * Alignment settings
     */
    alignOptions: AlignObject;
    /**
     * Related axis
     */
    axis: Axis;
    /**
     * Cumulative value of the stacked data points
     */
    cumulative: number;
    /**
     * True if on the negative side
     */
    isNegative: boolean;
    /**
     * Related SVG element
     */
    label: SVGElement;
    /**
     * Related stack options
     */
    options: YAxisStackLabelsOptions;
    /**
     * Total value of the stacked data points
     */
    total: number;
    /**
     * Shared x value of the stack
     */
    x: number;
}
export interface StockToolsGuiDefinitionsAdvancedFibonacciOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsAdvancedOptions {
    fibonacci?: StockToolsGuiDefinitionsAdvancedFibonacciOptions;
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
    parallelChannel?: StockToolsGuiDefinitionsAdvancedParallelChannelOptions;
    pitchfork?: StockToolsGuiDefinitionsAdvancedPitchforkOptions;
}
export interface StockToolsGuiDefinitionsAdvancedParallelChannelOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsAdvancedPitchforkOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsCrookedLinesCrooked3Options {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsCrookedLinesCrooked5Options {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsCrookedLinesElliott3Options {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsCrookedLinesElliott5Options {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsCrookedLinesOptions {
    crooked3?: StockToolsGuiDefinitionsCrookedLinesCrooked3Options;
    crooked5?: StockToolsGuiDefinitionsCrookedLinesCrooked5Options;
    elliott3?: StockToolsGuiDefinitionsCrookedLinesElliott3Options;
    elliott5?: StockToolsGuiDefinitionsCrookedLinesElliott5Options;
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
}
export interface StockToolsGuiDefinitionsCurrentPriceIndicatorOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsFlagsFlagCirclepinOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsFlagsFlagDiamondpinOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsFlagsFlagSimplepinOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsFlagsFlagSquarepinOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsFlagsOptions {
    flagCirclepin?: StockToolsGuiDefinitionsFlagsFlagCirclepinOptions;
    flagDiamondpin?: StockToolsGuiDefinitionsFlagsFlagDiamondpinOptions;
    flagSimplepin?: StockToolsGuiDefinitionsFlagsFlagSimplepinOptions;
    flagSquarepin?: StockToolsGuiDefinitionsFlagsFlagSquarepinOptions;
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
}
export interface StockToolsGuiDefinitionsFullScreenOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsIndicatorsOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsLinesArrowLineOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsLinesArrowRayOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsLinesArrowSegmentOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsLinesHorizontalLineOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsLinesLineOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsLinesOptions {
    arrowLine?: StockToolsGuiDefinitionsLinesArrowLineOptions;
    arrowRay?: StockToolsGuiDefinitionsLinesArrowRayOptions;
    arrowSegment?: StockToolsGuiDefinitionsLinesArrowSegmentOptions;
    horizontalLine?: StockToolsGuiDefinitionsLinesHorizontalLineOptions;
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
    line?: StockToolsGuiDefinitionsLinesLineOptions;
    ray?: StockToolsGuiDefinitionsLinesRayOptions;
    segment?: StockToolsGuiDefinitionsLinesSegmentOptions;
    verticalLine?: StockToolsGuiDefinitionsLinesVerticalLineOptions;
}
export interface StockToolsGuiDefinitionsLinesRayOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsLinesSegmentOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsLinesVerticalLineOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsMeasureMeasureXOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsMeasureMeasureXYOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsMeasureMeasureYOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsMeasureOptions {
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
    measureX?: StockToolsGuiDefinitionsMeasureMeasureXOptions;
    measureXY?: StockToolsGuiDefinitionsMeasureMeasureXYOptions;
    measureY?: StockToolsGuiDefinitionsMeasureMeasureYOptions;
}
/**
 * (Highstock) An options object of the buttons definitions. Each name refers to
 * unique key from buttons array.
 */
export interface StockToolsGuiDefinitionsOptions {
    advanced?: StockToolsGuiDefinitionsAdvancedOptions;
    crookedLines?: StockToolsGuiDefinitionsCrookedLinesOptions;
    currentPriceIndicator?: StockToolsGuiDefinitionsCurrentPriceIndicatorOptions;
    flags?: StockToolsGuiDefinitionsFlagsOptions;
    fullScreen?: StockToolsGuiDefinitionsFullScreenOptions;
    indicators?: StockToolsGuiDefinitionsIndicatorsOptions;
    lines?: StockToolsGuiDefinitionsLinesOptions;
    measure?: StockToolsGuiDefinitionsMeasureOptions;
    saveChart?: StockToolsGuiDefinitionsSaveChartOptions;
    separator?: StockToolsGuiDefinitionsSeparatorOptions;
    simpleShapes?: StockToolsGuiDefinitionsSimpleShapesOptions;
    toggleAnnotations?: StockToolsGuiDefinitionsToggleAnnotationsOptions;
    typeChange?: StockToolsGuiDefinitionsTypeChangeOptions;
    verticalLabels?: StockToolsGuiDefinitionsVerticalLabelsOptions;
    zoomChange?: StockToolsGuiDefinitionsZoomChangeOptions;
}
export interface StockToolsGuiDefinitionsSaveChartOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsSeparatorOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsSimpleShapesCircleOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsSimpleShapesLabelOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsSimpleShapesOptions {
    circle?: StockToolsGuiDefinitionsSimpleShapesCircleOptions;
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
    label?: StockToolsGuiDefinitionsSimpleShapesLabelOptions;
    rectangle?: StockToolsGuiDefinitionsSimpleShapesRectangleOptions;
}
export interface StockToolsGuiDefinitionsSimpleShapesRectangleOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsToggleAnnotationsOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsTypeChangeOptions {
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
    typeCandlestick?: StockToolsGuiDefinitionsTypeChangeTypeCandlestickOptions;
    typeLine?: StockToolsGuiDefinitionsTypeChangeTypeLineOptions;
    typeOHLC?: StockToolsGuiDefinitionsTypeChangeTypeOHLCOptions;
}
export interface StockToolsGuiDefinitionsTypeChangeTypeCandlestickOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsTypeChangeTypeLineOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsTypeChangeTypeOHLCOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsVerticalLabelsOptions {
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
    verticalArrow?: StockToolsGuiDefinitionsVerticalLabelsVerticalArrowOptions;
    verticalCounter?: StockToolsGuiDefinitionsVerticalLabelsVerticalCounterOptions;
    verticalLabel?: StockToolsGuiDefinitionsVerticalLabelsVerticalLabelOptions;
}
export interface StockToolsGuiDefinitionsVerticalLabelsVerticalArrowOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsVerticalLabelsVerticalCounterOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsVerticalLabelsVerticalLabelOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsZoomChangeOptions {
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * items.
     */
    items?: any[];
    zoomX?: StockToolsGuiDefinitionsZoomChangeZoomXOptions;
    zoomXY?: StockToolsGuiDefinitionsZoomChangeZoomXYOptions;
    zoomY?: StockToolsGuiDefinitionsZoomChangeZoomYOptions;
}
export interface StockToolsGuiDefinitionsZoomChangeZoomXOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsZoomChangeZoomXYOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
export interface StockToolsGuiDefinitionsZoomChangeZoomYOptions {
    /**
     * (Highstock) A predefined background symbol for the button.
     */
    symbol?: string;
}
/**
 * (Highstock) Definitions of buttons in Stock Tools GUI.
 */
export interface StockToolsGuiOptions {
    /**
     * (Highstock) A collection of strings pointing to config options for the
     * toolbar items. Each name refers to a unique key from the definitions
     * object.
     */
    buttons?: Array<string>;
    /**
     * (Highstock) A CSS class name to apply to the stocktools' div, allowing
     * unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (Highstock) An options object of the buttons definitions. Each name
     * refers to unique key from buttons array.
     */
    definitions?: StockToolsGuiDefinitionsOptions;
    /**
     * (Highstock) Enable or disable the stockTools gui.
     */
    enabled?: boolean;
    /**
     * (Highstock) A CSS class name to apply to the container of buttons,
     * allowing unique CSS styling for each chart.
     */
    toolbarClassName?: string;
}
/**
 * (Highstock) Configure the stockTools gui strings in the chart. Requires the
 * [stockTools module]() to be loaded. For a description of the module and
 * information on its features, see [Highcharts StockTools]().
 */
export interface StockToolsOptions {
    /**
     * (Highstock) Definitions of buttons in Stock Tools GUI.
     */
    gui?: StockToolsGuiOptions;
}
/**
 * The chart subtitle. The subtitle has an `update` method that allows modifying
 * the options directly or indirectly via `chart.update`.
 */
export interface SubtitleObject extends SVGElement {
    /**
     * Modify options for the subtitle.
     *
     * @param subtitleOptions
     *        Options to modify.
     *
     * @param redraw
     *        Whether to redraw the chart after the subtitle is altered. If
     *        doing more operations on the chart, it is a good idea to set
     *        redraw to false and call Chart#redraw after.
     */
    update(subtitleOptions: SubtitleOptions, redraw?: boolean): void;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The chart's subtitle. This can be
 * used both to display a subtitle below the main title, and to display random
 * text anywhere in the chart. The subtitle can be updated after chart
 * initialization through the `Chart.setTitle` method.
 */
export interface SubtitleOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The horizontal alignment of the
     * subtitle. Can be one of "left", "center" and "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When the subtitle is floating,
     * the plot area will not move to make space for it.
     */
    floating?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the title.
     *
     * In styled mode, the subtitle style is given in the `.highcharts-subtitle`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The subtitle of the chart.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the text.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * title. Can be one of `"top"`, `"middle"` and `"bottom"`. When middle, the
     * subtitle behaves as floating.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Adjustment made to the subtitle
     * width, normally to reserve space for the exporting burger menu.
     */
    widthAdjust?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position of the subtitle
     * relative to the alignment within `chart.spacingLeft` and
     * `chart.spacingRight`.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position of the subtitle
     * relative to the alignment within `chart.spacingTop` and
     * `chart.spacingBottom`. By default the subtitle is laid out below the
     * title unless the title is floating.
     */
    y?: number;
}
/**
 * An object of key-value pairs for SVG attributes. Attributes in Highcharts
 * elements for the most parts correspond to SVG, but some are specific to
 * Highcharts, like `zIndex`, `rotation`, `rotationOriginX`, `rotationOriginY`,
 * `translateX`, `translateY`, `scaleX` and `scaleY`. SVG attributes containing
 * a hyphen are _not_ camel-cased, they should be quoted to preserve the hyphen.
 */
export interface SVGAttributes {
    [key: string]: any;
    d?: (string|SVGPathArray);
    fill?: (ColorString|GradientColorObject|PatternObject);
    inverted?: boolean;
    matrix?: Array<number>;
    rotation?: number;
    rotationOriginX?: number;
    rotationOriginY?: number;
    scaleX?: number;
    scaleY?: number;
    stroke?: (ColorString|GradientColorObject|PatternObject);
    style?: (string|CSSObject);
    translateX?: number;
    translateY?: number;
    zIndex?: number;
}
/**
 * Serialized form of an SVG definition, including children. Some key property
 * names are reserved: tagName, textContent, and children.
 */
export interface SVGDefinitionObject {
    [key: string]: (boolean|number|string|Array<SVGDefinitionObject>|undefined);
    children?: Array<SVGDefinitionObject>;
    tagName?: string;
    textContent?: string;
}
/**
 * An extendable collection of functions for defining symbol paths. Symbols are
 * used internally for point markers, button and label borders and backgrounds,
 * or custom shapes. Extendable by adding to SVGRenderer#symbols.
 */
export interface SymbolDictionary {
    [key: string]: (Function|undefined);
    arc?: Function;
    callout?: Function;
    circle?: Function;
    diamond?: Function;
    square?: Function;
    triangle?: Function;
}
/**
 * Additional options, depending on the actual symbol drawn.
 */
export interface SymbolOptionsObject {
    /**
     * The anchor X position for the `callout` symbol. This is where the chevron
     * points to.
     */
    anchorX?: number;
    /**
     * The anchor Y position for the `callout` symbol. This is where the chevron
     * points to.
     */
    anchorY?: number;
    /**
     * The end angle of an `arc` symbol.
     */
    end?: number;
    /**
     * Whether to draw `arc` symbol open or closed.
     */
    open?: boolean;
    /**
     * The radius of an `arc` symbol, or the border radius for the `callout`
     * symbol.
     */
    r?: number;
    /**
     * The start angle of an `arc` symbol.
     */
    start?: number;
}
export interface TimelineDataLabelsFormatterContextObject extends PointLabelObject {
    key?: string;
    point: Point;
    series: Series;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the series data labels,
 * appearing next to each data point.
 *
 * Since v6.2.0, multiple data labels can be applied to each single point by
 * defining them as an array of configs.
 *
 * In styled mode, the data labels can be styled with the
 * `.highcharts-data-label-box` and `.highcharts-data-label` class names (see
 * example).
 */
export interface TimelineDataLabelsOptionsObject {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The alignment of the data label
     * compared to the point. If `right`, the right side of the label should be
     * touching the point. For points with an extent, like columns, the
     * alignments also dictates how to align it inside the box, as given with
     * the inside option. Can be one of `left`, `center` or `right`.
     */
    align?: (AlignValue|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow data labels to
     * overlap. To make the labels less sensitive for overlapping, the
     * dataLabels.padding can be set to 0.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to position data labels
     * alternately. For example, if distance is set equal to `100`, then data
     * labels will be positioned alternately (on both sides of the point) at a
     * distance of 100px.
     */
    alternate?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the initial
     * animation when a series is displayed for the `dataLabels`. The animation
     * can also be set as a configuration object. Please note that this option
     * only applies to the initial animation. For other animations, see
     * chart.animation and the animation parameter under the API methods. The
     * following properties are supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|PlotTimelineDataLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the data label.
     */
    backgroundColor?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border color for the data
     * label. Defaults to `undefined`.
     */
    borderColor?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border radius in pixels for
     * the data label.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The border width in pixels for
     * the data label.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name for the data label.
     * Particularly in styled mode, this can be used to give each series' or
     * point's data label unique styling. In addition to this option, a default
     * color class name is added so that we can give the labels a contrast text
     * shadow.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The text color for the data
     * labels. Defaults to `undefined`. For certain series types, like column or
     * map, the data labels can be drawn inside the points. In this case the
     * data label will be drawn with maximum contrast by default. Additionally,
     * it will be given a `text-outline` style with the opposite color, to
     * further increase the contrast. This can be overridden by setting the
     * `text-outline` style to `none` in the `dataLabels.style` option.
     */
    color?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the line connecting
     * the data label to the point. The default color is the same as the point's
     * color.
     *
     * In styled mode, the connector stroke is given in the
     * `.highcharts-data-label-connector` class.
     */
    connectorColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the line connecting
     * the data label to the point.
     *
     * In styled mode, the connector stroke width is given in the
     * `.highcharts-data-label-connector` class.
     */
    connectorWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to hide data labels that
     * are outside the plot area. By default, the data label is moved inside the
     * plot area according to the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to defer displaying the data
     * labels until the initial series animation has finished. Setting to
     * `false` renders the data label immediately. If set to `true` inherits the
     * defer time set in plotOptions.series.animation.
     */
    defer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A pixel value defining the
     * distance between the data label and the point. Negative numbers puts the
     * label on top of the point.
     */
    distance?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the data
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A declarative filter to control
     * of which data labels to display. The declarative filter is designed for
     * use when callback functions are not available, like when the chart
     * options require a pure JSON structure or for use with graphical editors.
     * For programmatic control, use the `formatter` instead, and return
     * `undefined` to disable a single data label.
     */
    filter?: DataLabelsFilterOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the data
     * label. Available variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the data label. Note that if a `format` is defined, the format
     * takes precedence and the formatter is ignored.
     */
    formatter?: TimelineDataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) For points with an extent, like
     * columns or map areas, whether to align the data label inside the box or
     * to the actual value point. Defaults to `false` in most cases, `true` in
     * stacked columns.
     */
    inside?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Format for points with the value
     * of null. Works analogously to format. `nullFormat` can be applied only to
     * series which support displaying null points.
     */
    nullFormat?: (boolean|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function
     * that defines formatting for points with the value of null. Works
     * analogously to formatter. `nullPointFormatter` can be applied only to
     * series which support displaying null points.
     */
    nullFormatter?: DataLabelsFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle data labels that
     * flow outside the plot area. The default is `"justify"`, which aligns them
     * inside the plot area. For columns and bars, this means it will be moved
     * inside the bar. To display data labels outside the plot area, set `crop`
     * to `false` and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When either the `borderWidth` or
     * the `backgroundColor` is set, this is the padding within the box.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Aligns data labels relative to
     * points. If `center` alignment is not possible, it defaults to `right`.
     */
    position?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Text rotation in degrees. Note
     * that due to a more complex structure, backgrounds, borders and padding
     * will be lost on a rotated data label.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Shadow options for the data
     * label.
     */
    shadow?: (boolean|CSSObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the label. Symbols are predefined functions on the
     * Renderer object.
     */
    shape?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Styles for the label. The
     * default `color` setting is `"contrast"`, which is a pseudo color that
     * Highcharts picks up and applies the maximum contrast to the underlying
     * point item, for example the bar in a bar chart.
     *
     * The `textOutline` is a pseudo property that applies an outline of the
     * given width with the given color, which by default is the maximum
     * contrast to the text. So a bright text color will result in a black text
     * outline for maximum readability on a mixed background. In some cases,
     * especially with grayscale text, the text outline doesn't work well, in
     * which cases it can be disabled by setting it to `"none"`. When `useHTML`
     * is true, the `textOutline` will not be picked up. In this, case, the same
     * effect can be acheived through the `text-shadow` CSS property.
     *
     * For some series types, where each point has an extent, like for example
     * tree maps, the data label may overflow the point. There are two
     * strategies for handling overflow. By default, the text will wrap to
     * multiple lines. The other strategy is to set `style.textOverflow` to
     * `ellipsis`, which will keep the text on one line plus it will break
     * inside long words.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Options for a label text which
     * should follow marker's shape. Border and background are disabled for a
     * label that follows a path.
     *
     * **Note:** Only SVG-based renderer supports this option. Setting `useHTML`
     * to true will disable this option.
     */
    textPath?: DataLabelsTextPathOptionsObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of a data
     * label. Can be one of `top`, `middle` or `bottom`. The default value
     * depends on the data, for instance in a column chart, the label is above
     * positive values and below negative values.
     */
    verticalAlign?: (VerticalAlignValue|null);
    width?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of the
     * label relative to the point in pixels.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of the
     * label relative to the point in pixels.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index of the data labels.
     * The default Z index puts it above the series. Use a Z index of 2 to
     * display it behind the series.
     */
    z?: number;
}
/**
 * Normalized interval.
 */
export interface TimeNormalizedObject {
    /**
     * The count.
     */
    count: number;
    /**
     * The interval in axis values (ms).
     */
    unitRange: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Time options that can apply globally
 * or to individual charts. These settings affect how `datetime` axes are laid
 * out, how tooltips are formatted, how series pointIntervalUnit works and how
 * the Highstock range selector handles time.
 *
 * The common use case is that all charts in the same Highcharts object share
 * the same time settings, in which case the global settings are set using
 * `setOptions`. (see online documentation for example)
 *
 * Since v6.0.5, the time options were moved from the `global` obect to the
 * `time` object, and time options can be set on each individual chart.
 */
export interface TimeOptions {
    /**
     * (Highcharts, Highstock, Gantt) A custom `Date` class for advanced date
     * handling. For example, JDate can be hooked in to handle Jalali dates.
     */
    Date?: any;
    /**
     * (Highcharts, Highstock, Gantt) A callback to return the time zone offset
     * for a given datetime. It takes the timestamp in terms of milliseconds
     * since January 1 1970, and returns the timezone offset in minutes. This
     * provides a hook for drawing time based charts in specific time zones
     * using their local DST crossover dates, with the help of external
     * libraries.
     */
    getTimezoneOffset?: TimezoneOffsetCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Allows to manually load the
     * `moment.js` library from Highcharts options instead of the `window`. In
     * case of loading the library from a `script` tag, this option is not
     * needed, it will be loaded from there by default.
     */
    moment?: Function;
    /**
     * (Highcharts, Highstock, Gantt) Requires moment.js. If the timezone option
     * is specified, it creates a default getTimezoneOffset function that looks
     * up the specified timezone in moment.js. If moment.js is not included,
     * this throws a Highcharts error in the console, but does not crash the
     * chart.
     */
    timezone?: string;
    /**
     * (Highcharts, Highstock, Gantt) The timezone offset in minutes. Positive
     * values are west, negative values are east of UTC, as in the ECMAScript
     * getTimezoneOffset method. Use this to display UTC based data in a
     * predefined time zone.
     */
    timezoneOffset?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use UTC time for axis
     * scaling, tickmark placement and time display in `Highcharts.dateFormat`.
     * Advantages of using UTC is that the time displays equally regardless of
     * the user agent's time zone settings. Local time can be used when the data
     * is loaded in real time or when correct Daylight Saving Time transitions
     * are required.
     */
    useUTC?: boolean;
}
/**
 * Additonal time tick information.
 */
export interface TimeTicksInfoObject extends TimeNormalizedObject {
    higherRanks: Array<string>;
    totalRange: number;
}
/**
 * The chart title. The title has an `update` method that allows modifying the
 * options directly or indirectly via `chart.update`.
 */
export interface TitleObject extends SVGElement {
    /**
     * Modify options for the title.
     *
     * @param titleOptions
     *        Options to modify.
     *
     * @param redraw
     *        Whether to redraw the chart after the title is altered. If doing
     *        more operations on the chart, it is a good idea to set redraw to
     *        false and call Chart#redraw after.
     */
    update(titleOptions: TitleOptions, redraw?: boolean): void;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The chart's main title.
 */
export interface TitleOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The horizontal alignment of the
     * title. Can be one of "left", "center" and "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When the title is floating, the
     * plot area will not move to make space for it.
     */
    floating?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The margin between the title and
     * the plot area, or if a subtitle is present, the margin between the
     * subtitle and the plot area.
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the title. Use
     * this for font styling, but use `align`, `x` and `y` for text alignment.
     *
     * In styled mode, the title style is given in the `.highcharts-title`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The title of the chart. To
     * disable the title, set the `text` to `undefined`.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the text.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The vertical alignment of the
     * title. Can be one of `"top"`, `"middle"` and `"bottom"`. When a value is
     * given, the title behaves as if floating were `true`.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Adjustment made to the title
     * width, normally to reserve space for the exporting burger menu.
     */
    widthAdjust?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position of the title
     * relative to the alignment within `chart.spacingLeft` and
     * `chart.spacingRight`.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position of the title
     * relative to the alignment within chart.spacingTop and
     * chart.spacingBottom. By default it depends on the font size.
     */
    y?: number;
}
export interface TooltipFormatterContextObject {
    color: (ColorString|GradientColorObject|PatternObject);
    colorIndex?: number;
    key: number;
    percentage?: number;
    point: Point;
    points?: Array<TooltipFormatterContextObject>;
    series: Series;
    total?: number;
    x: number;
    y: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Options for the tooltip that appears
 * when the user hovers over a series or point.
 */
export interface TooltipOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable animation of
     * the tooltip.
     */
    animation?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The background color or gradient
     * for the tooltip.
     *
     * In styled mode, the stroke width is set in the `.highcharts-tooltip-box`
     * class.
     */
    backgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the tooltip border.
     * When `undefined`, the border takes the color of the corresponding series
     * or point.
     */
    borderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The radius of the rounded border
     * corners.
     */
    borderRadius?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the tooltip
     * border.
     *
     * In styled mode, the stroke width is set in the `.highcharts-tooltip-box`
     * class.
     */
    borderWidth?: number;
    /**
     * (Highstock) How many decimals to show for the `point.change` value when
     * the `series.compare` option is set. This is overridable in each series'
     * tooltip options object. The default is to preserve all decimals.
     */
    changeDecimals?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A CSS class name to apply to the
     * tooltip's container div, allowing unique CSS styling for each chart.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The HTML of the cluster point's
     * in the tooltip. Works only with marker-clusters module and analogously to
     * pointFormat.
     *
     * The cluster tooltip can be also formatted using `tooltip.formatter`
     * callback function and `point.isCluster` flag.
     */
    clusterFormat?: object;
    /**
     * (Highcharts, Highstock, Gantt) For series on a datetime axes, the date
     * format in the tooltip's header will by default be guessed based on the
     * closest data points. This member gives the default string representations
     * used for each unit. For an overview of the replacement codes, see
     * dateFormat.
     */
    dateTimeLabelFormats?: Dictionary<string>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Distance from point to tooltip
     * in pixels.
     */
    distance?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the tooltip.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the tooltip should
     * follow the mouse as it moves across columns, pie slices and other point
     * types with an extent. By default it behaves this way for pie, polygon,
     * map, sankey and wordcloud series by override in the `plotOptions` for
     * those series types.
     *
     * For touch moves to behave the same way, followTouchMove must be `true`
     * also.
     */
    followPointer?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether the tooltip should
     * update as the finger moves on a touch device. If this is `true` and
     * chart.panning is set,`followTouchMove` will take over one-finger touches,
     * so the user needs to use two fingers for zooming and panning.
     *
     * Note the difference to followPointer that only defines the _position_ of
     * the tooltip. If `followPointer` is false in for example a column series,
     * the tooltip will show above or below the column, but as `followTouchMove`
     * is true, the tooltip will jump from column to column as the user swipes
     * across the plot area.
     */
    followTouchMove?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A string to append to the
     * tooltip format.
     */
    footerFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback function to format the
     * text of the tooltip from scratch. In case of single or shared tooltips, a
     * string should be returned. In case of split tooltips, it should return an
     * array where the first item is the header, and subsequent items are mapped
     * to the points. Return `false` to disable tooltip for a specific point on
     * series.
     *
     * A subset of HTML is supported. Unless `useHTML` is true, the HTML of the
     * tooltip is parsed and converted to SVG, therefore this isn't a complete
     * HTML renderer. The following HTML tags are supported: `b`, `br`, `em`,
     * `i`, `span`, `strong`. Spans can be styled with a `style` attribute, but
     * only text-related CSS, that is shared with SVG, is handled.
     *
     * The available data in the formatter differ a bit depending on whether the
     * tooltip is shared or split, or belongs to a single point. In a
     * shared/split tooltip, all properties except `x`, which is common for all
     * points, are kept in an array, `this.points`.
     *
     * Available data are:
     *
     * - **this.percentage (not shared) /** **this.points[i].percentage
     * (shared)**: Stacked series and pies only. The point's percentage of the
     * total.
     *
     * - **this.point (not shared) / this.points[i].point (shared)**: The point
     * object. The point name, if defined, is available through
     * `this.point.name`.
     *
     * - **this.points**: In a shared tooltip, this is an array containing all
     * other properties for each point.
     *
     * - **this.series (not shared) / this.points[i].series (shared)**: The
     * series object. The series name is available through `this.series.name`.
     *
     * - **this.total (not shared) / this.points[i].total (shared)**: Stacked
     * series only. The total value at this point's x value.
     *
     * - **this.x**: The x value. This property is the same regardless of the
     * tooltip being shared or not.
     *
     * - **this.y (not shared) / this.points[i].y (shared)**: The y value.
     */
    formatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The HTML of the tooltip header
     * line. Variables are enclosed by curly brackets. Available variables are
     * `point.key`, `series.name`, `series.color` and other members from the
     * `point` and `series` objects. The `point.key` variable contains the
     * category name, x value or datetime string depending on the type of axis.
     * For datetime axes, the `point.key` date format can be set using
     * `tooltip.xDateFormat`.
     */
    headerFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the tooltip header. Applies only when tooltip.split is
     * enabled.
     *
     * Custom callbacks for symbol path generation can also be added to
     * `Highcharts.SVGRenderer.prototype.symbols` the same way as for
     * series.marker.symbol.
     */
    headerShape?: OptionsHeaderShapeValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The number of milliseconds to
     * wait until the tooltip is hidden when mouse out from a point or chart.
     */
    hideDelay?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The HTML of the null point's
     * line in the tooltip. Works analogously to pointFormat.
     */
    nullFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback function to format the
     * text of the tooltip for visible null points. Works analogously to
     * formatter.
     */
    nullFormatter?: TooltipFormatterCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow the tooltip to
     * render outside the chart's SVG element box. By default (`false`), the
     * tooltip is rendered within the chart's SVG element, which results in the
     * tooltip being aligned inside the chart area. For small charts, this may
     * result in clipping or overlapping. When `true`, a separate SVG element is
     * created and overlaid on the page, allowing the tooltip to be aligned
     * inside the page itself.
     *
     * Defaults to `true` if `chart.scrollablePlotArea` is activated, otherwise
     * `false`.
     */
    outside?: (boolean|undefined);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Padding inside the tooltip, in
     * pixels.
     */
    padding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The HTML of the point's line in
     * the tooltip. Variables are enclosed by curly brackets. Available
     * variables are `point.x`, `point.y`, `series.name` and `series.color` and
     * other properties on the same form. Furthermore, `point.y` can be extended
     * by the `tooltip.valuePrefix` and `tooltip.valueSuffix` variables. This
     * can also be overridden for each series, which makes it a good hook for
     * displaying units.
     *
     * In styled mode, the dot is colored by a class name rather than the point
     * color.
     */
    pointFormat?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback function for
     * formatting the HTML output for a single point in the tooltip. Like the
     * `pointFormat` string, but with more flexibility.
     */
    pointFormatter?: FormatterCallbackFunction<Point>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback function to place the
     * tooltip in a default position. The callback receives three parameters:
     * `labelWidth`, `labelHeight` and `point`, where point contains values for
     * `plotX` and `plotY` telling where the reference point is in the plot
     * area. Add `chart.plotLeft` and `chart.plotTop` to get the full
     * coordinates.
     *
     * Since v7, when tooltip.split option is enabled, positioner is called for
     * each of the boxes separately, including xAxis header. xAxis header is not
     * a point, instead `point` argument contains info: `{ plotX: Number, plotY:
     * Number, isHeader: Boolean }`
     *
     * The return should be an object containing x and y values, for example `{
     * x: 100, y: 100 }`.
     */
    positioner?: TooltipPositionerCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to apply a drop shadow
     * to the tooltip.
     */
    shadow?: (boolean|ShadowOptionsObject);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The name of a symbol to use for
     * the border around the tooltip. Can be one of: `"callout"`, `"circle"`, or
     * `"square"`. When tooltip.split option is enabled, shape is applied to all
     * boxes except header, which is controlled by tooltip.headerShape.
     *
     * Custom callbacks for symbol path generation can also be added to
     * `Highcharts.SVGRenderer.prototype.symbols` the same way as for
     * series.marker.symbol.
     */
    shape?: TooltipShapeValue;
    /**
     * (Highcharts, Highstock) When the tooltip is shared, the entire plot area
     * will capture mouse movement or touch events. Tooltip texts for series
     * types with ordered data (not pie, scatter, flags etc) will be shown in a
     * single bubble. This is recommended for single series charts and for
     * tablet/mobile optimized charts.
     *
     * See also tooltip.split, that is better suited for charts with many
     * series, especially line-type series. The `tooltip.split` option takes
     * precedence over `tooltip.shared`.
     */
    shared?: boolean;
    /**
     * (Highcharts, Highstock) Proximity snap for graphs or single points. It
     * defaults to 10 for mouse-powered devices and 25 for touch devices.
     *
     * Note that in most cases the whole plot area captures the mouse movement,
     * and in these cases `tooltip.snap` doesn't make sense. This applies when
     * stickyTracking is `true` (default) and when the tooltip is shared or
     * split.
     */
    snap?: number;
    /**
     * (Highcharts, Highstock) Split the tooltip into one label per series, with
     * the header close to the axis. This is recommended over shared tooltips
     * for charts with multiple line series, generally making them easier to
     * read. This option takes precedence over `tooltip.shared`.
     */
    split?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Prevents the tooltip from
     * switching or closing, when touched or pointed.
     */
    stickOnContact?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the tooltip. The
     * tooltip can also be styled through the CSS class `.highcharts-tooltip`.
     *
     * Note that the default `pointerEvents` style makes the tooltip ignore
     * mouse events, so in order to use clickable tooltips, this value must be
     * set to `auto`.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Use HTML to render the contents
     * of the tooltip instead of SVG. Using HTML allows advanced formatting like
     * tables and images in the tooltip. It is also recommended for rtl
     * languages as it works around rtl bugs in early Firefox.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How many decimals to show in
     * each series' y value. This is overridable in each series' tooltip options
     * object. The default is to preserve all decimals.
     */
    valueDecimals?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A string to prepend to each
     * series' y value. Overridable in each series' tooltip options object.
     */
    valuePrefix?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A string to append to each
     * series' y value. Overridable in each series' tooltip options object.
     */
    valueSuffix?: string;
    /**
     * (Highcharts, Highstock, Gantt) The format for the date in the tooltip
     * header if the X axis is a datetime axis. The default is a best guess
     * based on the smallest distance between points in the chart.
     */
    xDateFormat?: string;
}
/**
 * Point information for positioning a tooltip.
 */
export interface TooltipPositionerPointObject extends Point {
    /**
     * If `tooltip.split` option is enabled and positioner is called for each of
     * the boxes separately, this property indicates the call on the xAxis
     * header, which is not a point itself.
     */
    isHeader: boolean;
    /**
     * The reference point relative to the plot area. Add chart.plotLeft to get
     * the full coordinates.
     */
    plotX: number;
    /**
     * The reference point relative to the plot area. Add chart.plotTop to get
     * the full coordinates.
     */
    plotY: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array defining breaks in the axis, the
 * sections defined will be left out and all the points shifted closer to each
 * other.
 */
export interface XAxisBreaksOptions {
    /**
     * (Highcharts, Highstock, Gantt) A number indicating how much space should
     * be left between the start and the end of the break. The break size is
     * given in axis units, so for instance on a `datetime` axis, a break size
     * of 3600000 would indicate the equivalent of an hour.
     */
    breakSize?: number;
    /**
     * (Highcharts, Highstock, Gantt) The point where the break starts.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) Defines an interval after which the break
     * appears again. By default the breaks do not repeat.
     */
    repeat?: number;
    /**
     * (Highcharts, Highstock, Gantt) The point where the break ends.
     */
    to?: number;
}
/**
 * (Gantt) An object defining mouse events for the plot line. Supported
 * properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface XAxisCurrentDateIndicatorEventsOptions {
    /**
     * (Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse out event on the corner of a plot band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Gantt) Text labels for the plot bands
 */
export interface XAxisCurrentDateIndicatorLabelOptions {
    /**
     * (Gantt) Horizontal alignment of the label. Can be one of "left", "center"
     * or "right".
     */
    align?: AlignValue;
    /**
     * (Gantt) Format of the label. This options is passed as the fist argument
     * to dateFormat function.
     */
    format?: string;
    /**
     * (Gantt) Callback JavaScript function to format the label. Useful
     * properties like the value of plot line or the range of plot band (`from`
     * & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Rotation of the text label in degrees. Defaults to 0 for
     * horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Gantt) The text itself. A subset of HTML is supported.
     */
    text?: string;
    /**
     * (Gantt) The text alignment for the label. While `align` determines where
     * the texts anchor point is placed within the plot band, `textAlign`
     * determines how the text is aligned against its anchor point. Possible
     * values are "left", "center" and "right". Defaults to the same as the
     * `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Gantt) Vertical alignment of the label relative to the plot line. Can be
     * one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Gantt) Horizontal position relative the alignment. Default varies by
     * orientation.
     */
    x?: number;
    /**
     * (Gantt) Vertical position of the text baseline relative to the alignment.
     * Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Event handlers for the axis.
 */
export interface XAxisEventsOptions {
    /**
     * (Highcharts, Gantt) An event fired after the breaks have rendered.
     */
    afterBreaks?: AxisEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) As opposed to the `setExtremes`
     * event, this event fires after the final min and max values are computed
     * and corrected for `minRange`.
     *
     * Fires when the minimum and maximum is set for the axis, either by calling
     * the `.setExtremes()` method or by selecting an area in the chart. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in axis
     * values. The actual data extremes are found in `event.dataMin` and
     * `event.dataMax`.
     */
    afterSetExtremes?: AxisSetExtremesEventCallbackFunction;
    /**
     * (Highcharts, Gantt) An event fired when a break from this axis occurs on
     * a point.
     */
    pointBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) An event fired when a point falls inside a
     * break from this axis.
     */
    pointInBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when the minimum and
     * maximum is set for the axis, either by calling the `.setExtremes()`
     * method or by selecting an area in the chart. One parameter, `event`, is
     * passed to the function, containing common event information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in data
     * values. When an axis is zoomed all the way out from the "Reset zoom"
     * button, `event.min` and `event.max` are null, and the new extremes are
     * set based on `this.dataMin` and `this.dataMax`.
     */
    setExtremes?: AxisSetExtremesEventCallbackFunction;
}
/**
 * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
 */
export interface XAxisGridOptions {
    /**
     * (Gantt) Set border color for the label grid lines.
     */
    borderColor?: ColorString;
    /**
     * (Gantt) Set border width of the label grid lines.
     */
    borderWidth?: number;
    /**
     * (Gantt) Set cell height for grid axis labels. By default this is
     * calculated from font size. This option only applies to horizontal axes.
     */
    cellHeight?: number;
    /**
     * (Gantt) Set specific options for each column (or row for horizontal axes)
     * in the grid. Each extra column/row is its own axis, and the axis options
     * can be set here.
     */
    columns?: Array<XAxisOptions>;
    /**
     * (Gantt) Enable grid on the axis labels. Defaults to true for Gantt
     * charts.
     */
    enabled?: boolean;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The axis labels show the number or
 * category for each tick.
 *
 * Since v8.0.0: Labels are animated in categorized x-axis with updating data if
 * `tickInterval` and `step` is set to 1.
 */
export interface XAxisLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) What part of the string the
     * given position is anchored to. If `left`, the left side of the string is
     * at the axis position. Can be one of `"left"`, `"center"` or `"right"`.
     * Defaults to an intelligent guess based on which side of the chart the
     * axis is on and the rotation of the label.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) For horizontal axes, the allowed degrees
     * of label rotation to prevent overlapping labels. If there is enough
     * space, labels are not rotated. As the chart gets narrower, it will start
     * rotating the labels -45 degrees, then remove every second label and try
     * again with rotations 0 and -45 etc. Set it to `false` to disable
     * rotation, which will cause the labels to word-wrap if possible.
     */
    autoRotation?: (false|Array<number>);
    /**
     * (Highcharts, Gantt) When each category width is more than this many
     * pixels, we don't apply auto rotation. Instead, we lay out the axis label
     * with word wrap. A lower limit makes sense when the label contains
     * multiple short words that don't extend the available horizontal space for
     * each label.
     */
    autoRotationLimit?: number;
    /**
     * (Highcharts, Gantt) Polar charts only. The label's pixel distance from
     * the perimeter of the plot area.
     */
    distance?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the axis
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the axis
     * label.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the label. The value is given by `this.value`. Additional
     * properties for `this` are `axis`, `chart`, `isFirst` and `isLast`. The
     * value of the default label formatter can be retrieved by calling
     * `this.axis.defaultLabelFormatter.call(this)` within the function.
     *
     * Defaults to: (see online documentation for example)
     */
    formatter?: AxisLabelsFormatterCallbackFunction;
    /**
     * (Gantt) The number of pixels to indent the labels per level in a treegrid
     * axis.
     */
    indentation?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle overflowing labels
     * on horizontal axis. If set to `"allow"`, it will not be aligned at all.
     * By default it `"justify"` labels inside the chart area. If there is room
     * to move it, it will be aligned to the edge, else it will be removed.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Gantt) The pixel padding for axis labels, to ensure white
     * space between them.
     */
    padding?: number;
    /**
     * (Highcharts) Defines how the labels are be repositioned according to the
     * 3D chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     */
    position3d?: OptionsPosition3dValue;
    /**
     * (Highcharts, Gantt) Whether to reserve space for the labels. By default,
     * space is reserved for the labels in these cases:
     *
     * * On all horizontal axes.
     *
     * * On vertical axes if `label.align` is `right` on a left-side axis or
     * `left` on a right-side axis.
     *
     * * On vertical axes if `label.align` is `center`.
     *
     * This can be turned off when for example the labels are rendered inside
     * the plot area instead of outside.
     */
    reserveSpace?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Rotation of the labels in
     * degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis labels will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `labels.position3d`.
     */
    skew3d?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Horizontal axes only. The number
     * of lines to spread the labels over to make room or tighter labels.
     */
    staggerLines?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) To show only every _n_'th label
     * on the axis, set the step to _n_. Setting the step to 2 shows every other
     * label.
     *
     * By default, the step is calculated automatically to avoid overlap. To
     * prevent this, set it to 1\. This usually only happens on a category axis,
     * and is often a sign that you have chosen the wrong axis type.
     *
     * Read more at Axis docs => What axis should I use?
     */
    step?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the label. Use
     * `whiteSpace: 'nowrap'` to prevent wrapping of category labels. Use
     * `textOverflow: 'none'` to prevent ellipsis (dots).
     *
     * In styled mode, the labels are styled with the `.highcharts-axis-labels`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of all
     * labels relative to the tick positions on the axis.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of all
     * labels relative to the tick positions on the axis. The default makes it
     * adapt to the font size of the bottom axis.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index for the axis labels.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The X axis or category axis.
 * Normally this is the horizontal axis, though if the chart is inverted this is
 * the vertical axis. In case of multiple axes, the xAxis node is an array of
 * configuration objects.
 *
 * See the Axis class for programmatic access to the axis.
 */
export interface XAxisOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for an
     * axis. Requires the accessibility module.
     */
    accessibility?: AxisAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When using multiple axis, the ticks of two
     * or more opposite axes will automatically be aligned by adding ticks to
     * the axis or axes with the least ticks, as if `tickAmount` were specified.
     *
     * This can be prevented by setting `alignTicks` to false. If the grid lines
     * look messy, it's a good idea to hide them for the secondary axis by
     * setting `gridLineWidth` to 0.
     *
     * If `startOnTick` or `endOnTick` in an Axis options are set to false, then
     * the `alignTicks ` will be disabled for the Axis.
     *
     * Disabled for logarithmic axes.
     */
    alignTicks?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow decimals in
     * this axis' ticks. When counting integers, like persons or hits on a web
     * page, decimals should be avoided in the labels.
     */
    allowDecimals?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When using an alternate grid
     * color, a band is painted across the plot area between every other grid
     * line.
     */
    alternateGridColor?: ColorType;
    /**
     * (Highcharts) In a polar chart, this is the angle of the Y axis in
     * degrees, where 0 is up and 90 is right. The angle determines the position
     * of the axis line and the labels, though the coordinate system is
     * unaffected. Since v8.0.0 this option is also applicable for X axis
     * (inverted polar).
     */
    angle?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array defining breaks in the axis, the
     * sections defined will be left out and all the points shifted closer to
     * each other.
     */
    breaks?: Array<XAxisBreaksOptions>;
    /**
     * (Highcharts, Gantt) If categories are present for the xAxis, names are
     * used instead of numbers for that axis.
     *
     * Since Highcharts 3.0, categories can also be extracted by giving each
     * point a name and setting axis type to `category`. However, if you have
     * multiple series, best practice remains defining the `categories` array.
     *
     * Example: `categories: ['Apples', 'Bananas', 'Oranges']`
     */
    categories?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) The highest allowed value for
     * automatically computed axis extremes.
     */
    ceiling?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name that opens for
     * styling the axis by CSS, especially in Highcharts styled mode. The class
     * name is applied to group elements for the grid, axis elements and labels.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Configure a crosshair that
     * follows either the mouse pointer or the hovered point.
     *
     * In styled mode, the crosshairs are styled in the `.highcharts-crosshair`,
     * `.highcharts-crosshair-thin` or `.highcharts-xaxis-category` classes.
     */
    crosshair?: (boolean|AxisCrosshairOptions);
    /**
     * (Gantt) Show an indicator on the axis for the current date and time. Can
     * be a boolean or a configuration object similar to xAxis.plotLines.
     */
    currentDateIndicator?: (boolean|AxisCurrentDateIndicatorOptions);
    /**
     * (Highcharts, Highstock, Gantt) For a datetime axis, the scale will
     * automatically adjust to the appropriate unit. This member gives the
     * default string representations used for each unit. For intermediate
     * values, different units may be used, for example the `day` unit can be
     * used on midnight and `hour` unit be used for intermediate values on the
     * same axis.
     *
     * For an overview of the replacement codes, see dateFormat.
     *
     * Defaults to: (see online documentation for example)
     */
    dateTimeLabelFormats?: AxisDateTimeLabelFormatsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to force the axis to end
     * on a tick. Use this option with the `maxPadding` option to control the
     * axis end.
     */
    endOnTick?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event handlers for the axis.
     */
    events?: XAxisEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The lowest allowed value for automatically
     * computed axis extremes.
     */
    floor?: number;
    /**
     * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
     */
    grid?: XAxisGridOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color of the grid lines
     * extending the ticks across the plot area.
     *
     * In styled mode, the stroke is given in the `.highcharts-grid-line` class.
     */
    gridLineColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The dash or dot style of the
     * grid lines. For possible values, see this demonstration.
     */
    gridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Polar charts only. Whether the grid lines should draw as a
     * polygon with straight lines between categories, or as circles. Can be
     * either `circle` or `polygon`. Since v8.0.0 this option is also applicable
     * for X axis (inverted polar).
     */
    gridLineInterpolation?: OptionsGridLineInterpolationValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the grid lines
     * extending the ticks across the plot area.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    gridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Z index of the grid lines.
     */
    gridZIndex?: number;
    /**
     * (Highcharts, Highstock) The height as the vertical axis. If it's a
     * number, it is interpreted as pixels.
     *
     * Since Highcharts 2: If it's a percentage string, it is interpreted as
     * percentages of the total plot height.
     */
    height?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An id for the axis. This can be
     * used after render time to get a pointer to the axis object through
     * `chart.get()`.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The axis labels show the number
     * or category for each tick.
     *
     * Since v8.0.0: Labels are animated in categorized x-axis with updating
     * data if `tickInterval` and `step` is set to 1.
     */
    labels?: XAxisLabelsOptions;
    /**
     * (Highcharts, Highstock) The left position as the horizontal axis. If it's
     * a number, it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the plot width, offset from plot area left.
     */
    left?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the line marking
     * the axis itself.
     *
     * In styled mode, the line stroke is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the line marking
     * the axis itself.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Index of another axis that this axis is
     * linked to. When an axis is linked to a master axis, it will take the same
     * extremes as the master, but as assigned by min or max or by setExtremes.
     * It can be used to show additional info, or to ease reading the chart by
     * duplicating the scales.
     */
    linkedTo?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If there are multiple axes on
     * the same side of the chart, the pixel margin between the axes. Defaults
     * to 0 on vertical axes, 15 on horizontal axes.
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The maximum value of the axis.
     * If `null`, the max value is automatically calculated.
     *
     * If the endOnTick option is true, the `max` value might be rounded up.
     *
     * If a tickAmount is set, the axis may be extended beyond the set max in
     * order to reach the given number of ticks. The same may happen in a chart
     * with multiple axes, determined by chart. alignTicks, where a `tickAmount`
     * is applied internally.
     */
    max?: (number|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Padding of the max value
     * relative to the length of the axis. A padding of 0.05 will make a 100px
     * axis 5px longer. This is useful when you don't want the highest data
     * value to appear on the edge of the plot area. When the axis' `max` option
     * is set or a max extreme is set using `axis.setExtremes()`, the maxPadding
     * will be ignored.
     */
    maxPadding?: number;
    /**
     * (Highstock, Gantt) Maximum range which can be set using the navigator's
     * handles. Opposite of xAxis.minRange.
     */
    maxRange?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The minimum value of the axis.
     * If `null` the min value is automatically calculated.
     *
     * If the startOnTick option is true (default), the `min` value might be
     * rounded down.
     *
     * The automatically calculated minimum value is also affected by floor,
     * softMin, minPadding, minRange as well as series.threshold and
     * series.softThreshold.
     */
    min?: (number|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color of the minor, secondary
     * grid lines.
     *
     * In styled mode, the stroke width is given in the
     * `.highcharts-minor-grid-line` class.
     */
    minorGridLineColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The dash or dot style of the
     * minor grid lines. For possible values, see this demonstration.
     */
    minorGridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Width of the minor, secondary
     * grid lines.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    minorGridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color for the minor tick marks.
     */
    minorTickColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Specific tick interval in axis
     * units for the minor ticks. On a linear axis, if `"auto"`, the minor tick
     * interval is calculated as a fifth of the tickInterval. If `null` or
     * `undefined`, minor ticks are not shown.
     *
     * On logarithmic axes, the unit is the power of the value. For example,
     * setting the minorTickInterval to 1 puts one tick on each of 0.1, 1, 10,
     * 100 etc. Setting the minorTickInterval to 0.1 produces 9 ticks between 1
     * and 10, 10 and 100 etc.
     *
     * If user settings dictate minor ticks to become too dense, they don't make
     * sense, and will be ignored to prevent performance problems.
     */
    minorTickInterval?: (number|string|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel length of the minor
     * tick marks.
     */
    minorTickLength?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The position of the minor tick
     * marks relative to the axis line. Can be one of `inside` and `outside`.
     */
    minorTickPosition?: OptionsMinorTickPositionValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable minor ticks.
     * Unless minorTickInterval is set, the tick interval is calculated as a
     * fifth of the `tickInterval`.
     *
     * On a logarithmic axis, minor ticks are laid out based on a best guess,
     * attempting to enter approximately 5 minor ticks between each major tick.
     *
     * Prior to v6.0.0, ticks were unabled in auto layout by setting
     * `minorTickInterval` to `"auto"`.
     */
    minorTicks?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the minor
     * tick mark.
     */
    minorTickWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Padding of the min value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the lowest data value to appear on the
     * edge of the plot area. When the axis' `min` option is set or a min
     * extreme is set using `axis.setExtremes()`, the minPadding will be
     * ignored.
     */
    minPadding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The minimum range to display on
     * this axis. The entire axis will not be allowed to span over a smaller
     * interval than this. For example, for a datetime axis the main unit is
     * milliseconds. If minRange is set to 3600000, you can't zoom in more than
     * to one hour.
     *
     * The default minRange for the x axis is five times the smallest interval
     * between any of the data points.
     *
     * On a logarithmic axis, the unit for the minimum range is the power. So a
     * minRange of 1 means that the axis can be zoomed to 10-100, 100-1000,
     * 1000-10000 etc.
     *
     * **Note**: The `minPadding`, `maxPadding`, `startOnTick` and `endOnTick`
     * settings also affect how the extremes of the axis are computed.
     */
    minRange?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The minimum tick interval
     * allowed in axis values. For example on zooming in on an axis with daily
     * data, this can be used to prevent the axis from showing hours. Defaults
     * to the closest distance between two points on the axis.
     */
    minTickInterval?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The distance in pixels from the
     * plot area to the axis line. A positive offset moves the axis with it's
     * line, labels and ticks away from the plot area. This is typically used
     * when two or more axes are displayed on the same side of the plot. With
     * multiple axes the offset is dynamically adjusted to avoid collision, this
     * can be overridden by setting offset explicitly.
     */
    offset?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to display the axis on
     * the opposite side of the normal. The normal is on the left side for
     * vertical axes and bottom for horizontal, so the opposite sides will be
     * right and top respectively. This is typically used with dual or multiple
     * axes.
     */
    opposite?: boolean;
    /**
     * (Highstock) In an ordinal axis, the points are equally spaced in the
     * chart regardless of the actual time or x distance between them. This
     * means that missing data periods (e.g. nights or weekends for a stock
     * chart) will not take up space in the chart. Having `ordinal: false` will
     * show any gaps created by the `gapSize` setting proportionate to their
     * duration.
     *
     * In stock charts the X axis is ordinal by default, unless the boost module
     * is used and at least one of the series' data length exceeds the
     * boostThreshold.
     */
    ordinal?: boolean;
    /**
     * (Highstock) Additional range on the right side of the xAxis. Works
     * similar to `xAxis.maxPadding`, but value is set in milliseconds. Can be
     * set for both main `xAxis` and the navigator's `xAxis`.
     */
    overscroll?: number;
    /**
     * (Highcharts) Refers to the index in the panes array. Used for circular
     * gauges and polar charts. When the option is not set then first pane will
     * be used.
     */
    pane?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array of colored bands stretching
     * across the plot area marking an interval on the axis.
     *
     * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
     * class in addition to the `className` option.
     */
    plotBands?: Array<XAxisPlotBandsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) An array of lines stretching across the
     * plot area, marking a specific value on one of the axes.
     *
     * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
     * class in addition to the `className` option.
     */
    plotLines?: Array<XAxisPlotLinesOptions>;
    /**
     * (Highstock) The zoomed range to display when only defining one or none of
     * `min` or `max`. For example, to show the latest month, a range of one
     * month can be set.
     */
    range?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to reverse the axis so
     * that the highest number is closest to the origin. If the chart is
     * inverted, the x axis is reversed by default.
     */
    reversed?: boolean;
    /**
     * (Highcharts, Highstock) This option determines how stacks should be
     * ordered within a group. For example reversed xAxis also reverses stacks,
     * so first series comes last in a group. To keep order like for
     * non-reversed xAxis enable this option.
     */
    reversedStacks?: boolean;
    /**
     * (Highstock) An optional scrollbar to display on the X axis in response to
     * limiting the minimum and maximum of the axis values.
     *
     * In styled mode, all the presentational options for the scrollbar are
     * replaced by the classes `.highcharts-scrollbar-thumb`,
     * `.highcharts-scrollbar-arrow`, `.highcharts-scrollbar-button`,
     * `.highcharts-scrollbar-rifles` and `.highcharts-scrollbar-track`.
     */
    scrollbar?: XAxisScrollbarOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to show the axis line
     * and title when the axis has no data.
     */
    showEmpty?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to show the first tick
     * label.
     */
    showFirstLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to show the last tick label.
     * Defaults to `true` on cartesian charts, and `false` on polar charts.
     */
    showLastLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A soft maximum for the axis. If the series
     * data maximum is less than this, the axis will stay at this maximum, but
     * if the series data maximum is higher, the axis will flex to show all
     * data.
     */
    softMax?: number;
    /**
     * (Highcharts, Highstock, Gantt) A soft minimum for the axis. If the series
     * data minimum is greater than this, the axis will stay at this minimum,
     * but if the series data minimum is lower, the axis will flex to show all
     * data.
     */
    softMin?: number;
    /**
     * (Highcharts, Highstock, Gantt) For datetime axes, this decides where to
     * put the tick between weeks. 0 = Sunday, 1 = Monday.
     */
    startOfWeek?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to force the axis to
     * start on a tick. Use this option with the `minPadding` option to control
     * the axis start.
     */
    startOnTick?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) The amount of ticks to draw on the axis.
     * This opens up for aligning the ticks of multiple charts or panes within a
     * chart. This option overrides the `tickPixelInterval` option.
     *
     * This option only has an effect on linear axes. Datetime, logarithmic or
     * category axes are not affected.
     */
    tickAmount?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The interval of the tick marks
     * in axis units. When `undefined`, the tick interval is computed to
     * approximately follow the tickPixelInterval on linear and datetime axes.
     * On categorized axes, a `undefined` tickInterval will default to 1, one
     * category. Note that datetime axes are based on milliseconds, so for
     * example an interval of one day is expressed as `24 * 3600 * 1000`.
     *
     * On logarithmic axes, the tickInterval is based on powers, so a
     * tickInterval of 1 means one tick on each of 0.1, 1, 10, 100 etc. A
     * tickInterval of 2 means a tick of 0.1, 10, 1000 etc. A tickInterval of
     * 0.2 puts a tick on 0.1, 0.2, 0.4, 0.6, 0.8, 1, 2, 4, 6, 8, 10, 20, 40
     * etc.
     *
     * If the tickInterval is too dense for labels to be drawn, Highcharts may
     * remove ticks.
     *
     * If the chart has multiple axes, the alignTicks option may interfere with
     * the `tickInterval` setting.
     */
    tickInterval?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel length of the main
     * tick marks.
     */
    tickLength?: number;
    /**
     * (Highcharts, Gantt) For categorized axes only. If `on` the tick mark is
     * placed in the center of the category, if `between` the tick mark is
     * placed between categories. The default is `between` if the `tickInterval`
     * is 1, else `on`.
     */
    tickmarkPlacement?: OptionsTickmarkPlacementValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If tickInterval is `null` this
     * option sets the approximate pixel interval of the tick marks. Not
     * applicable to categorized axis.
     *
     * The tick interval is also influenced by the minTickInterval option, that,
     * by default prevents ticks from being denser than the data points.
     */
    tickPixelInterval?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The position of the major tick
     * marks relative to the axis line. Can be one of `inside` and `outside`.
     */
    tickPosition?: OptionsTickPositionValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback function returning
     * array defining where the ticks are laid out on the axis. This overrides
     * the default behaviour of tickPixelInterval and tickInterval. The
     * automatic tick positions are accessible through `this.tickPositions` and
     * can be modified by the callback.
     */
    tickPositioner?: AxisTickPositionerCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array defining where the
     * ticks are laid out on the axis. This overrides the default behaviour of
     * tickPixelInterval and tickInterval.
     */
    tickPositions?: Array<number>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the major
     * tick marks. Defaults to 0 on category axes, otherwise 1.
     *
     * In styled mode, the stroke width is given in the `.highcharts-tick`
     * class, but in order for the element to be generated on category axes, the
     * option must be explicitly set to 1.
     */
    tickWidth?: (number|undefined);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The axis title, showing next to
     * the axis line.
     */
    title?: XAxisTitleOptions;
    /**
     * (Highcharts, Highstock) The top position as the vertical axis. If it's a
     * number, it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts 2: If it's a percentage string, it is interpreted as
     * percentages of the plot height, offset from plot area top.
     */
    top?: (number|string);
    /**
     * (Highcharts, Gantt) The type of axis. Can be one of `linear`,
     * `logarithmic`, `datetime` or `category`. In a datetime axis, the numbers
     * are given in milliseconds, and tick marks are placed on appropriate
     * values like full hours or days. In a category axis, the point names of
     * the chart's series are used for categories, if not a categories array is
     * defined.
     */
    type?: AxisTypeValue;
    /**
     * (Highcharts, Gantt) Applies only when the axis `type` is `category`. When
     * `uniqueNames` is true, points are placed on the X axis according to their
     * names. If the same point name is repeated in the same or another series,
     * the point is placed on the same X position as other points of the same
     * name. When `uniqueNames` is false, the points are laid out in increasing
     * X positions regardless of their names, and the X axis category will take
     * the name of the last point in each position.
     */
    uniqueNames?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Datetime axis only. An array determining
     * what time intervals the ticks are allowed to fall on. Each array item is
     * an array where the first value is the time unit and the second value
     * another array of allowed multiples.
     *
     * Defaults to: (see online documentation for example)
     */
    units?: Array<[string, (Array<number>|null)]>;
    /**
     * (Highcharts, Highstock, Gantt) Whether axis, including axis title, line,
     * ticks and labels, should be visible.
     */
    visible?: boolean;
    /**
     * (Highcharts, Highstock) The width as the horizontal axis. If it's a
     * number, it is interpreted as pixels.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the total plot width.
     */
    width?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to zoom axis. If
     * `chart.zoomType` is set, the option allows to disable zooming on an
     * individual axis.
     */
    zoomEnabled?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * band. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface XAxisPlotBandsEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface XAxisPlotBandsLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees .
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-band-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The string text itself. A subset of HTML
     * is supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot band. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of colored bands stretching across
 * the plot area marking an interval on the axis.
 *
 * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
 * class in addition to the `className` option.
 */
export interface XAxisPlotBandsOptions {
    /**
     * (Highstock) Flag to decide if plotBand should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Border color for the plot band. Also
     * requires `borderWidth` to be set.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) Border width for the plot band. Also
     * requires `borderColor` to be set.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-band`, to apply to each individual band.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the plot band.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot band. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: XAxisPlotBandsEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The start position of the plot band in
     * axis units.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot band
     * in Axis.removePlotBand.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: XAxisPlotBandsLabelOptions;
    /**
     * (Highcharts, Highstock, Gantt) The end position of the plot band in axis
     * units.
     */
    to?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot band within the
     * chart, relative to other elements. Using the same z index as another
     * element may give unpredictable results, as the last rendered element will
     * be on top. Values from 0 to 20 make sense.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * line. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface XAxisPlotLinesEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface XAxisPlotLinesLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Callback JavaScript function to format the
     * label. Useful properties like the value of plot line or the range of plot
     * band (`from` & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees.
     * Defaults to 0 for horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The text itself. A subset of HTML is
     * supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot line. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of lines stretching across the plot
 * area, marking a specific value on one of the axes.
 *
 * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
 * class in addition to the `className` option.
 */
export interface XAxisPlotLinesOptions {
    /**
     * (Highstock) Flag to decide if plotLine should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-line`, to apply to each individual line.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the line.
     */
    color?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) The dashing or dot style for the plot
     * line. For possible values see this overview.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot line. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: XAxisPlotLinesEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot line
     * in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: XAxisPlotLinesLabelOptions;
    /**
     * (Highcharts, Highstock, Gantt) The position of the line in axis units.
     */
    value?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width or thickness of the plot line.
     */
    width?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot line within the
     * chart.
     */
    zIndex?: number;
}
/**
 * (Highstock) An optional scrollbar to display on the X axis in response to
 * limiting the minimum and maximum of the axis values.
 *
 * In styled mode, all the presentational options for the scrollbar are replaced
 * by the classes `.highcharts-scrollbar-thumb`, `.highcharts-scrollbar-arrow`,
 * `.highcharts-scrollbar-button`, `.highcharts-scrollbar-rifles` and
 * `.highcharts-scrollbar-track`.
 */
export interface XAxisScrollbarOptions {
    /**
     * (Highstock) The background color of the scrollbar itself.
     */
    barBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the scrollbar's border.
     */
    barBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border rounding radius of the bar.
     */
    barBorderRadius?: number;
    /**
     * (Highstock) The width of the bar's border.
     */
    barBorderWidth?: number;
    /**
     * (Highstock) The color of the small arrow inside the scrollbar buttons.
     */
    buttonArrowColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of scrollbar buttons.
     */
    buttonBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the border of the scrollbar buttons.
     */
    buttonBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The corner radius of the scrollbar buttons.
     */
    buttonBorderRadius?: number;
    /**
     * (Highstock) The border width of the scrollbar buttons.
     */
    buttonBorderWidth?: number;
    /**
     * (Highstock) Enable or disable the scrollbar.
     */
    enabled?: boolean;
    /**
     * (Highstock) The height of the scrollbar. The height also applies to the
     * width of the scroll arrows so that they are always squares. Defaults to
     * 20 for touch devices and 14 for mouse devices.
     */
    height?: number;
    /**
     * (Highstock) Whether to redraw the main chart as the scrollbar or the
     * navigator zoomed window is moved. Defaults to `true` for modern browsers
     * and `false` for legacy IE browsers as well as mobile devices.
     */
    liveRedraw?: boolean;
    /**
     * (Highstock) The margin between the scrollbar and its axis when the
     * scrollbar is applied directly to an axis.
     */
    margin?: number;
    /**
     * (Highstock) The minimum width of the scrollbar.
     */
    minWidth?: number;
    /**
     * (Highstock) The color of the small rifles in the middle of the scrollbar.
     */
    rifleColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Whether to show or hide the scrollbar when the scrolled
     * content is zoomed out to it full extent.
     */
    showFull?: boolean;
    /**
     * (Highstock) The color of the track background.
     */
    trackBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the border of the scrollbar track.
     */
    trackBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The corner radius of the border of the scrollbar track.
     */
    trackBorderRadius?: number;
    /**
     * (Highstock) The width of the border of the scrollbar track.
     */
    trackBorderWidth?: number;
    /**
     * (Highstock) The z index of the scrollbar group.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The axis title, showing next to the
 * axis line.
 */
export interface XAxisTitleOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alignment of the title relative
     * to the axis values. Possible values are "low", "middle" or "high".
     */
    align?: AxisTitleAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel distance between the
     * axis labels or line and the title. Defaults to 0 for horizontal axes, 10
     * for vertical
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The distance of the axis title
     * from the axis line. By default, this distance is computed from the offset
     * width of the labels, the labels' distance from the axis and the title's
     * margin. However when the offset option is set, it overrides all this.
     */
    offset?: number;
    /**
     * (Highcharts) Defines how the title is repositioned according to the 3D
     * chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     *
     * - `undefined`: Will use the config from `labels.position3d`
     */
    position3d?: ("chart"|"flap"|"offset"|"ortho"|null);
    /**
     * (Highcharts, Highstock, Gantt) Whether to reserve space for the title
     * when laying out the axis.
     */
    reserveSpace?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The rotation of the text in
     * degrees. 0 is horizontal, 270 is vertical reading from bottom to top.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis title will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `title.position3d`.
     *
     * A `null` value will use the config from `labels.skew3d`.
     */
    skew3d?: (boolean|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the title. If the
     * title text is longer than the axis length, it will wrap to multiple lines
     * by default. This can be customized by setting `textOverflow: 'ellipsis'`,
     * by setting a specific `width` or by setting `whiteSpace: 'nowrap'`.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-title`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The actual text of the axis
     * title. It can contain basic HTML tags like `b`, `i` and `span` with
     * style.
     */
    text?: (string|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alignment of the text, can be
     * `"left"`, `"right"` or `"center"`. Default alignment depends on the
     * title.align:
     *
     * Horizontal axes:
     *
     * - for `align` = `"low"`, `textAlign` is set to `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"`, `textAlign` is set to `right`
     *
     * Vertical axes:
     *
     * - for `align` = `"low"` and `opposite` = `true`, `textAlign` is set to
     * `right`
     *
     * - for `align` = `"low"` and `opposite` = `false`, `textAlign` is set to
     * `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"` and `opposite` = `true` `textAlign` is set to
     * `left`
     *
     * - for `align` = `"high"` and `opposite` = `false` `textAlign` is set to
     * `right`
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the axis
     * title.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal pixel offset of the title
     * position.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical pixel offset of the title
     * position.
     */
    y?: number;
}
/**
 * (Gantt) Connect to a point. This option can be either a string, referring to
 * the ID of another point, or an object, or an array of either. If the option
 * is an array, each element defines a connection.
 */
export interface XrangePointConnectorsOptionsObject {
    /**
     * (Gantt) Set the default dash style for this chart's connecting lines.
     */
    dashStyle?: string;
    /**
     * (Gantt) Marker options specific to the end markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    endMarker?: ConnectorsEndMarkerOptions;
    /**
     * (Gantt) Set the default color for this chart's Pathfinder connecting
     * lines. Defaults to the color of the point being connected.
     */
    lineColor?: ColorString;
    /**
     * (Gantt) Set the default pixel width for this chart's Pathfinder
     * connecting lines.
     */
    lineWidth?: number;
    /**
     * (Gantt) Marker options for this chart's Pathfinder connectors. Note that
     * this option is overridden by the `startMarker` and `endMarker` options.
     */
    marker?: ConnectorsMarkerOptions;
    /**
     * (Gantt) Marker options specific to the start markers for this chart's
     * Pathfinder connectors. Overrides the generic marker options.
     */
    startMarker?: ConnectorsStartMarkerOptions;
    /**
     * (Gantt) The ID of the point to connect to.
     */
    to?: string;
    /**
     * (Gantt) Set the default pathfinder algorithm to use for this chart. It is
     * possible to define your own algorithms by adding them to the
     * Highcharts.Pathfinder.prototype.algorithms object before the chart has
     * been created.
     *
     * The default algorithms are as follows:
     *
     * `straight`: Draws a straight line between the connecting points. Does not
     * avoid other points when drawing.
     *
     * `simpleConnect`: Finds a path between the points using right angles only.
     * Takes only starting/ending points into account, and will not avoid other
     * points.
     *
     * `fastAvoid`: Finds a path between the points using right angles only.
     * Will attempt to avoid other points, but its focus is performance over
     * accuracy. Works well with less dense datasets.
     *
     * Default value: `straight` is used as default for most series types, while
     * `simpleConnect` is used as default for Gantt series, to show dependencies
     * between points.
     */
    type?: PathfinderTypeValue;
}
/**
 * (Highcharts, Highstock, Gantt) An array of data points for the series. For
 * the `xrange` series type, points can be given in the following ways:
 *
 * 1. An array of objects with named values. The objects are point configuration
 * objects as seen below. (see online documentation for example)
 */
export interface XrangePointOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) Accessibility options for a data point.
     */
    accessibility?: PointAccessibilityOptionsObject;
    /**
     * (Highcharts, Gantt) An additional, individual class name for the data
     * point's graphic representation.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) Individual color for the point. By default
     * the color is pulled from the global `colors` array.
     *
     * In styled mode, the `color` option doesn't take effect. Instead, use
     * `colorIndex`.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Gantt) A specific color index to use for the point, so its
     * graphic representations are given the class name `highcharts-color-{n}`.
     * In styled mode this will change the color of the graphic. In non-styled
     * mode, the color by is set by the `fill` attribute, so the change in class
     * name won't have a visual effect by default.
     */
    colorIndex?: number;
    /**
     * (Gantt) Connect to a point. This option can be either a string, referring
     * to the ID of another point, or an object, or an array of either. If the
     * option is an array, each element defines a connection.
     */
    connect?: (string|XrangePointConnectorsOptionsObject|Array<(string|XrangePointConnectorsOptionsObject)>);
    /**
     * (Highcharts, Highstock, Gantt) A reserved subspace to store options and
     * values for customized functionality. Here you can add additional data for
     * your own event callbacks and formatter callbacks.
     */
    custom?: Dictionary<any>;
    /**
     * (Highcharts, Highstock, Gantt) Individual data label for each point. The
     * options are the same as the ones for plotOptions.series.dataLabels.
     */
    dataLabels?: (DataLabelsOptions|Array<DataLabelsOptions>);
    /**
     * (Highcharts, Highstock, Gantt) A description of the point to add to the
     * screen reader information about the point.
     */
    description?: string;
    /**
     * (Highcharts, Highstock, Gantt) Point specific options for the
     * draggable-points module. Overrides options on `series.dragDrop`.
     */
    dragDrop?: SeriesLineDataDragDropOptions;
    /**
     * (Highcharts) The `id` of a series in the drilldown.series array to use
     * for a drilldown for this point.
     */
    drilldown?: string;
    /**
     * (Highcharts, Highstock, Gantt) The individual point events.
     */
    events?: PointEventsOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) An id for the point. This can be used
     * after render time to get a pointer to the point object through
     * `chart.get()`.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) The rank for this point's data label in
     * case of collision. If two data labels are about to overlap, only the one
     * with the highest `labelrank` will be drawn.
     */
    labelrank?: number;
    /**
     * (Highcharts, Highstock) Options for the point markers of line-like
     * series.
     */
    marker?: PointMarkerOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) The name of the point as shown in the
     * legend, tooltip, dataLabels, etc.
     */
    name?: string;
    /**
     * (Highcharts, Highstock, Gantt) A partial fill for each point, typically
     * used to visualize how much of a task is performed. The partial fill
     * object can be set either on series or point level.
     */
    partialFill?: XrangePointPartialFillOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) Whether the data point is selected
     * initially.
     */
    selected?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) The starting X value of the range point.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) The ending X value of the range point.
     */
    x2?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Y value of the range point.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) A partial fill for each point, typically used
 * to visualize how much of a task is performed. The partial fill object can be
 * set either on series or point level.
 */
export interface XrangePointPartialFillOptionsObject {
    /**
     * (Highcharts, Highstock, Gantt) The amount of the X-range point to be
     * filled. Values can be 0-1 and are converted to percentages in the default
     * data label formatter.
     */
    amount?: number;
    /**
     * (Highcharts, Highstock, Gantt) The fill color to be used for partial
     * fills. Defaults to a darker shade of the point color.
     */
    fill?: (ColorString|GradientColorObject|PatternObject);
}
/**
 * (Highcharts, Highstock, Gantt) An array defining breaks in the axis, the
 * sections defined will be left out and all the points shifted closer to each
 * other.
 */
export interface YAxisBreaksOptions {
    /**
     * (Highcharts, Highstock, Gantt) A number indicating how much space should
     * be left between the start and the end of the break. The break size is
     * given in axis units, so for instance on a `datetime` axis, a break size
     * of 3600000 would indicate the equivalent of an hour.
     */
    breakSize?: number;
    /**
     * (Highcharts, Highstock, Gantt) The point where the break starts.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) Defines an interval after which the break
     * appears again. By default the breaks do not repeat.
     */
    repeat?: number;
    /**
     * (Highcharts, Highstock, Gantt) The point where the break ends.
     */
    to?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) Event handlers for the axis.
 */
export interface YAxisEventsOptions {
    /**
     * (Highcharts, Gantt) An event fired after the breaks have rendered.
     */
    afterBreaks?: AxisEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) As opposed to the `setExtremes`
     * event, this event fires after the final min and max values are computed
     * and corrected for `minRange`.
     *
     * Fires when the minimum and maximum is set for the axis, either by calling
     * the `.setExtremes()` method or by selecting an area in the chart. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in axis
     * values. The actual data extremes are found in `event.dataMin` and
     * `event.dataMax`.
     */
    afterSetExtremes?: AxisSetExtremesEventCallbackFunction;
    /**
     * (Highcharts, Gantt) An event fired when a break from this axis occurs on
     * a point.
     */
    pointBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) An event fired when a point falls inside a
     * break from this axis.
     */
    pointInBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Fires when the minimum and
     * maximum is set for the axis, either by calling the `.setExtremes()`
     * method or by selecting an area in the chart. One parameter, `event`, is
     * passed to the function, containing common event information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in data
     * values. When an axis is zoomed all the way out from the "Reset zoom"
     * button, `event.min` and `event.max` are null, and the new extremes are
     * set based on `this.dataMin` and `this.dataMax`.
     */
    setExtremes?: AxisSetExtremesEventCallbackFunction;
}
/**
 * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
 */
export interface YAxisGridOptions {
    /**
     * (Gantt) Set border color for the label grid lines.
     */
    borderColor?: ColorString;
    /**
     * (Gantt) Set border width of the label grid lines.
     */
    borderWidth?: number;
    /**
     * (Gantt) Set cell height for grid axis labels. By default this is
     * calculated from font size. This option only applies to horizontal axes.
     */
    cellHeight?: number;
    /**
     * (Gantt) Set specific options for each column (or row for horizontal axes)
     * in the grid. Each extra column/row is its own axis, and the axis options
     * can be set here.
     */
    columns?: Array<XAxisOptions>;
    /**
     * (Gantt) Enable grid on the axis labels. Defaults to true for Gantt
     * charts.
     */
    enabled?: boolean;
}
/**
 * (Gantt) Set options on specific levels in a tree grid axis. Takes precedence
 * over labels options.
 */
export interface YAxisLabelsLevelsOptions {
    /**
     * (Gantt) Specify the level which the options within this object applies
     * to.
     */
    level?: number;
    style?: CSSObject;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The axis labels show the number or
 * category for each tick.
 *
 * Since v8.0.0: Labels are animated in categorized x-axis with updating data if
 * `tickInterval` and `step` is set to 1.
 */
export interface YAxisLabelsOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) What part of the string the
     * given position is anchored to. Can be one of `"left"`, `"center"` or
     * `"right"`. The exact position also depends on the `labels.x` setting.
     *
     * Angular gauges and solid gauges defaults to `"center"`. Solid gauges with
     * two labels have additional option `"auto"` for automatic horizontal and
     * vertical alignment.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) For horizontal axes, the allowed degrees
     * of label rotation to prevent overlapping labels. If there is enough
     * space, labels are not rotated. As the chart gets narrower, it will start
     * rotating the labels -45 degrees, then remove every second label and try
     * again with rotations 0 and -45 etc. Set it to `false` to disable
     * rotation, which will cause the labels to word-wrap if possible.
     */
    autoRotation?: (false|Array<number>);
    /**
     * (Highcharts, Gantt) When each category width is more than this many
     * pixels, we don't apply auto rotation. Instead, we lay out the axis label
     * with word wrap. A lower limit makes sense when the label contains
     * multiple short words that don't extend the available horizontal space for
     * each label.
     */
    autoRotationLimit?: number;
    /**
     * (Highcharts) Angular gauges and solid gauges only. The label's pixel
     * distance from the perimeter of the plot area.
     *
     * Since v7.1.2: If it's a percentage string, it is interpreted the same as
     * series.radius, so label can be aligned under the gauge's shape.
     */
    distance?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable the axis
     * labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A format string for the axis
     * label.
     */
    format?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Callback JavaScript function to
     * format the label. The value is given by `this.value`. Additional
     * properties for `this` are `axis`, `chart`, `isFirst` and `isLast`. The
     * value of the default label formatter can be retrieved by calling
     * `this.axis.defaultLabelFormatter.call(this)` within the function.
     *
     * Defaults to: (see online documentation for example)
     */
    formatter?: AxisLabelsFormatterCallbackFunction;
    /**
     * (Gantt) The number of pixels to indent the labels per level in a treegrid
     * axis.
     */
    indentation?: number;
    /**
     * (Gantt) Set options on specific levels in a tree grid axis. Takes
     * precedence over labels options.
     */
    levels?: Array<YAxisLabelsLevelsOptions>;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) How to handle overflowing labels
     * on horizontal axis. If set to `"allow"`, it will not be aligned at all.
     * By default it `"justify"` labels inside the chart area. If there is room
     * to move it, it will be aligned to the edge, else it will be removed.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Gantt) The pixel padding for axis labels, to ensure white
     * space between them.
     */
    padding?: number;
    /**
     * (Highcharts) Defines how the labels are be repositioned according to the
     * 3D chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     */
    position3d?: OptionsPosition3dValue;
    /**
     * (Highcharts, Gantt) Whether to reserve space for the labels. By default,
     * space is reserved for the labels in these cases:
     *
     * * On all horizontal axes.
     *
     * * On vertical axes if `label.align` is `right` on a left-side axis or
     * `left` on a right-side axis.
     *
     * * On vertical axes if `label.align` is `center`.
     *
     * This can be turned off when for example the labels are rendered inside
     * the plot area instead of outside.
     */
    reserveSpace?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Rotation of the labels in
     * degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis labels will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `labels.position3d`.
     */
    skew3d?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Horizontal axes only. The number
     * of lines to spread the labels over to make room or tighter labels.
     */
    staggerLines?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) To show only every _n_'th label
     * on the axis, set the step to _n_. Setting the step to 2 shows every other
     * label.
     *
     * By default, the step is calculated automatically to avoid overlap. To
     * prevent this, set it to 1\. This usually only happens on a category axis,
     * and is often a sign that you have chosen the wrong axis type.
     *
     * Read more at Axis docs => What axis should I use?
     */
    step?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the label. Use
     * `whiteSpace: 'nowrap'` to prevent wrapping of category labels. Use
     * `textOverflow: 'none'` to prevent ellipsis (dots).
     *
     * In styled mode, the labels are styled with the `.highcharts-axis-labels`
     * class.
     */
    style?: CSSObject;
    /**
     * (Gantt) The symbol for the collapse and expand icon in a treegrid.
     */
    symbol?: YAxisLabelsSymbolOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to use HTML to render
     * the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The x position offset of all
     * labels relative to the tick positions on the axis. Defaults to -15 for
     * left axis, 15 for right axis.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The y position offset of all
     * labels relative to the tick positions on the axis. For polar and radial
     * axis consider the use of the distance option.
     */
    y?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The Z index for the axis labels.
     */
    zIndex?: number;
}
/**
 * (Gantt) The symbol for the collapse and expand icon in a treegrid.
 */
export interface YAxisLabelsSymbolOptions {
    height?: number;
    padding?: number;
    /**
     * (Gantt) The symbol type. Points to a definition function in the
     * `Highcharts.Renderer.symbols` collection.
     */
    type?: SymbolKeyValue;
    width?: number;
    x?: number;
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The Y axis or value axis. Normally
 * this is the vertical axis, though if the chart is inverted this is the
 * horizontal axis. In case of multiple axes, the yAxis node is an array of
 * configuration objects.
 *
 * See the Axis object for programmatic access to the axis.
 */
export interface YAxisOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Accessibility options for an
     * axis. Requires the accessibility module.
     */
    accessibility?: AxisAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When using multiple axis, the ticks of two
     * or more opposite axes will automatically be aligned by adding ticks to
     * the axis or axes with the least ticks, as if `tickAmount` were specified.
     *
     * This can be prevented by setting `alignTicks` to false. If the grid lines
     * look messy, it's a good idea to hide them for the secondary axis by
     * setting `gridLineWidth` to 0.
     *
     * If `startOnTick` or `endOnTick` in an Axis options are set to false, then
     * the `alignTicks ` will be disabled for the Axis.
     *
     * Disabled for logarithmic axes.
     */
    alignTicks?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to allow decimals in
     * this axis' ticks. When counting integers, like persons or hits on a web
     * page, decimals should be avoided in the labels.
     */
    allowDecimals?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) When using an alternate grid
     * color, a band is painted across the plot area between every other grid
     * line.
     */
    alternateGridColor?: ColorType;
    /**
     * (Highcharts) In a polar chart, this is the angle of the Y axis in
     * degrees, where 0 is up and 90 is right. The angle determines the position
     * of the axis line and the labels, though the coordinate system is
     * unaffected. Since v8.0.0 this option is also applicable for X axis
     * (inverted polar).
     */
    angle?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array defining breaks in the axis, the
     * sections defined will be left out and all the points shifted closer to
     * each other.
     */
    breaks?: Array<YAxisBreaksOptions>;
    /**
     * (Highcharts, Gantt) If categories are present for the xAxis, names are
     * used instead of numbers for that axis.
     *
     * Since Highcharts 3.0, categories can also be extracted by giving each
     * point a name and setting axis type to `category`. However, if you have
     * multiple series, best practice remains defining the `categories` array.
     *
     * Example: `categories: ['Apples', 'Bananas', 'Oranges']`
     */
    categories?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) The highest allowed value for
     * automatically computed axis extremes.
     */
    ceiling?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A class name that opens for
     * styling the axis by CSS, especially in Highcharts styled mode. The class
     * name is applied to group elements for the grid, axis elements and labels.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Configure a crosshair that
     * follows either the mouse pointer or the hovered point.
     *
     * In styled mode, the crosshairs are styled in the `.highcharts-crosshair`,
     * `.highcharts-crosshair-thin` or `.highcharts-xaxis-category` classes.
     */
    crosshair?: (boolean|AxisCrosshairOptions);
    /**
     * (Highcharts, Highstock, Gantt) For a datetime axis, the scale will
     * automatically adjust to the appropriate unit. This member gives the
     * default string representations used for each unit. For intermediate
     * values, different units may be used, for example the `day` unit can be
     * used on midnight and `hour` unit be used for intermediate values on the
     * same axis.
     *
     * For an overview of the replacement codes, see dateFormat.
     *
     * Defaults to: (see online documentation for example)
     */
    dateTimeLabelFormats?: AxisDateTimeLabelFormatsOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to force the axis to end
     * on a tick. Use this option with the `maxPadding` option to control the
     * axis end.
     *
     * This option is always disabled, when panning type is either `y` or `xy`.
     */
    endOnTick?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Event handlers for the axis.
     */
    events?: YAxisEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The lowest allowed value for automatically
     * computed axis extremes.
     */
    floor?: number;
    /**
     * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
     */
    grid?: YAxisGridOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color of the grid lines
     * extending the ticks across the plot area.
     *
     * In styled mode, the stroke is given in the `.highcharts-grid-line` class.
     */
    gridLineColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The dash or dot style of the
     * grid lines. For possible values, see this demonstration.
     */
    gridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Polar charts only. Whether the grid lines should draw as a
     * polygon with straight lines between categories, or as circles. Can be
     * either `circle` or `polygon`. Since v8.0.0 this option is also applicable
     * for X axis (inverted polar).
     */
    gridLineInterpolation?: OptionsGridLineInterpolationValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the grid lines
     * extending the ticks across the plot area.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    gridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Z index of the grid lines.
     */
    gridZIndex?: number;
    /**
     * (Highcharts, Highstock) The height of the Y axis. If it's a number, it is
     * interpreted as pixels.
     *
     * Since Highcharts 2: If it's a percentage string, it is interpreted as
     * percentages of the total plot height.
     */
    height?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An id for the axis. This can be
     * used after render time to get a pointer to the axis object through
     * `chart.get()`.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The axis labels show the number
     * or category for each tick.
     *
     * Since v8.0.0: Labels are animated in categorized x-axis with updating
     * data if `tickInterval` and `step` is set to 1.
     */
    labels?: YAxisLabelsOptions;
    /**
     * (Highcharts, Highstock) The left position as the horizontal axis. If it's
     * a number, it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the plot width, offset from plot area left.
     */
    left?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The color of the line marking
     * the axis itself.
     *
     * In styled mode, the line stroke is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The width of the line marking
     * the axis itself.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-line`
     * or `.highcharts-xaxis-line` class.
     */
    lineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Index of another axis that this axis is
     * linked to. When an axis is linked to a master axis, it will take the same
     * extremes as the master, but as assigned by min or max or by setExtremes.
     * It can be used to show additional info, or to ease reading the chart by
     * duplicating the scales.
     */
    linkedTo?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If there are multiple axes on
     * the same side of the chart, the pixel margin between the axes. Defaults
     * to 0 on vertical axes, 15 on horizontal axes.
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The maximum value of the axis.
     * If `null`, the max value is automatically calculated.
     *
     * If the endOnTick option is true, the `max` value might be rounded up.
     *
     * If a tickAmount is set, the axis may be extended beyond the set max in
     * order to reach the given number of ticks. The same may happen in a chart
     * with multiple axes, determined by chart. alignTicks, where a `tickAmount`
     * is applied internally.
     */
    max?: (number|null);
    /**
     * (Highcharts) Solid gauge only. Unless stops are set, the color to
     * represent the maximum value of the Y axis.
     */
    maxColor?: ColorType;
    /**
     * (Highstock) Maximal size of a resizable axis. Could be set as a percent
     * of plot area or pixel size.
     */
    maxLength?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) Padding of the max value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the highest data value to appear on
     * the edge of the plot area. When the axis' `max` option is set or a max
     * extreme is set using `axis.setExtremes()`, the maxPadding will be
     * ignored.
     *
     * Also the `softThreshold` option takes precedence over `maxPadding`, so if
     * the data is tangent to the threshold, `maxPadding` may not apply unless
     * `softThreshold` is set to false.
     */
    maxPadding?: number;
    /**
     * (Highstock, Gantt) Maximum range which can be set using the navigator's
     * handles. Opposite of xAxis.minRange.
     */
    maxRange?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The minimum value of the axis.
     * If `null` the min value is automatically calculated.
     *
     * If the startOnTick option is true (default), the `min` value might be
     * rounded down.
     *
     * The automatically calculated minimum value is also affected by floor,
     * softMin, minPadding, minRange as well as series.threshold and
     * series.softThreshold.
     */
    min?: (number|null);
    /**
     * (Highcharts) Solid gauge only. Unless stops are set, the color to
     * represent the minimum value of the Y axis.
     */
    minColor?: ColorType;
    /**
     * (Highstock) Minimal size of a resizable axis. Could be set as a percent
     * of plot area or pixel size.
     */
    minLength?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color of the minor, secondary
     * grid lines.
     *
     * In styled mode, the stroke width is given in the
     * `.highcharts-minor-grid-line` class.
     */
    minorGridLineColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The dash or dot style of the
     * minor grid lines. For possible values, see this demonstration.
     */
    minorGridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Width of the minor, secondary
     * grid lines.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    minorGridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color for the minor tick marks.
     */
    minorTickColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Specific tick interval in axis
     * units for the minor ticks. On a linear axis, if `"auto"`, the minor tick
     * interval is calculated as a fifth of the tickInterval. If `null` or
     * `undefined`, minor ticks are not shown.
     *
     * On logarithmic axes, the unit is the power of the value. For example,
     * setting the minorTickInterval to 1 puts one tick on each of 0.1, 1, 10,
     * 100 etc. Setting the minorTickInterval to 0.1 produces 9 ticks between 1
     * and 10, 10 and 100 etc.
     *
     * If user settings dictate minor ticks to become too dense, they don't make
     * sense, and will be ignored to prevent performance problems.
     */
    minorTickInterval?: (number|string|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel length of the minor
     * tick marks.
     */
    minorTickLength?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The position of the minor tick
     * marks relative to the axis line. Can be one of `inside` and `outside`.
     */
    minorTickPosition?: OptionsMinorTickPositionValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Enable or disable minor ticks.
     * Unless minorTickInterval is set, the tick interval is calculated as a
     * fifth of the `tickInterval`.
     *
     * On a logarithmic axis, minor ticks are laid out based on a best guess,
     * attempting to enter approximately 5 minor ticks between each major tick.
     *
     * Prior to v6.0.0, ticks were unabled in auto layout by setting
     * `minorTickInterval` to `"auto"`.
     */
    minorTicks?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel width of the minor
     * tick mark.
     */
    minorTickWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Padding of the min value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the lowest data value to appear on the
     * edge of the plot area. When the axis' `min` option is set or a max
     * extreme is set using `axis.setExtremes()`, the maxPadding will be
     * ignored.
     *
     * Also the `softThreshold` option takes precedence over `minPadding`, so if
     * the data is tangent to the threshold, `minPadding` may not apply unless
     * `softThreshold` is set to false.
     */
    minPadding?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The minimum range to display on
     * this axis. The entire axis will not be allowed to span over a smaller
     * interval than this. For example, for a datetime axis the main unit is
     * milliseconds. If minRange is set to 3600000, you can't zoom in more than
     * to one hour.
     *
     * The default minRange for the x axis is five times the smallest interval
     * between any of the data points.
     *
     * On a logarithmic axis, the unit for the minimum range is the power. So a
     * minRange of 1 means that the axis can be zoomed to 10-100, 100-1000,
     * 1000-10000 etc.
     *
     * **Note**: The `minPadding`, `maxPadding`, `startOnTick` and `endOnTick`
     * settings also affect how the extremes of the axis are computed.
     */
    minRange?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The minimum tick interval
     * allowed in axis values. For example on zooming in on an axis with daily
     * data, this can be used to prevent the axis from showing hours. Defaults
     * to the closest distance between two points on the axis.
     */
    minTickInterval?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The distance in pixels from the
     * plot area to the axis line. A positive offset moves the axis with it's
     * line, labels and ticks away from the plot area. This is typically used
     * when two or more axes are displayed on the same side of the plot. With
     * multiple axes the offset is dynamically adjusted to avoid collision, this
     * can be overridden by setting offset explicitly.
     */
    offset?: number;
    /**
     * (Highstock, Highcharts, Gantt) Whether to display the axis on the
     * opposite side of the normal. The normal is on the left side for vertical
     * axes and bottom for horizontal, so the opposite sides will be right and
     * top respectively. This is typically used with dual or multiple axes.
     */
    opposite?: boolean;
    /**
     * (Highcharts) Refers to the index in the panes array. Used for circular
     * gauges and polar charts. When the option is not set then first pane will
     * be used.
     */
    pane?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array of colored bands stretching
     * across the plot area marking an interval on the axis.
     *
     * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
     * class in addition to the `className` option.
     */
    plotBands?: Array<YAxisPlotBandsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) An array of lines stretching across the
     * plot area, marking a specific value on one of the axes.
     *
     * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
     * class in addition to the `className` option.
     */
    plotLines?: Array<YAxisPlotLinesOptions>;
    /**
     * (Highstock) The zoomed range to display when only defining one or none of
     * `min` or `max`. For example, to show the latest month, a range of one
     * month can be set.
     */
    range?: number;
    /**
     * (Highstock) Options for axis resizing. It adds a thick line between panes
     * which the user can drag in order to resize the panes.
     */
    resize?: YAxisResizeOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to reverse the axis so
     * that the highest number is closest to the origin.
     */
    reversed?: boolean;
    /**
     * (Highcharts, Highstock) If `true`, the first series in a stack will be
     * drawn on top in a positive, non-reversed Y axis. If `false`, the first
     * series is in the base of the stack.
     */
    reversedStacks?: boolean;
    /**
     * (Highstock) An optional scrollbar to display on the Y axis in response to
     * limiting the minimum an maximum of the axis values.
     *
     * In styled mode, all the presentational options for the scrollbar are
     * replaced by the classes `.highcharts-scrollbar-thumb`,
     * `.highcharts-scrollbar-arrow`, `.highcharts-scrollbar-button`,
     * `.highcharts-scrollbar-rifles` and `.highcharts-scrollbar-track`.
     */
    scrollbar?: YAxisScrollbarOptions;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to show the axis line
     * and title when the axis has no data.
     */
    showEmpty?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to show the first tick
     * label.
     */
    showFirstLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to show the last tick label.
     * Defaults to `true` on cartesian charts, and `false` on polar charts.
     */
    showLastLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A soft maximum for the axis. If the series
     * data maximum is less than this, the axis will stay at this maximum, but
     * if the series data maximum is higher, the axis will flex to show all
     * data.
     *
     * **Note**: The series.softThreshold option takes precedence over this
     * option.
     */
    softMax?: number;
    /**
     * (Highcharts, Highstock, Gantt) A soft minimum for the axis. If the series
     * data minimum is greater than this, the axis will stay at this minimum,
     * but if the series data minimum is lower, the axis will flex to show all
     * data.
     *
     * **Note**: The series.softThreshold option takes precedence over this
     * option.
     */
    softMin?: number;
    /**
     * (Highcharts) The stack labels show the total value for each bar in a
     * stacked column or bar chart. The label will be placed on top of positive
     * columns and below negative columns. In case of an inverted column chart
     * or a bar chart the label is placed to the right of positive bars and to
     * the left of negative bars.
     */
    stackLabels?: YAxisStackLabelsOptions;
    /**
     * (Highcharts, Highstock, Gantt) For datetime axes, this decides where to
     * put the tick between weeks. 0 = Sunday, 1 = Monday.
     */
    startOfWeek?: number;
    /**
     * (Highcharts, Highstock, Gantt) Whether to force the axis to start on a
     * tick. Use this option with the `maxPadding` option to control the axis
     * start.
     *
     * This option is always disabled, when panning type is either `y` or `xy`.
     */
    startOnTick?: boolean;
    /**
     * (Gantt) For vertical axes only. Setting the static scale ensures that
     * each tick unit is translated into a fixed pixel height. For example,
     * setting the static scale to 24 results in each Y axis category taking up
     * 24 pixels, and the height of the chart adjusts. Adding or removing items
     * will make the chart resize.
     */
    staticScale?: number;
    /**
     * (Highcharts) Solid gauge series only. Color stops for the solid gauge.
     * Use this in cases where a linear gradient between a `minColor` and
     * `maxColor` is not sufficient. The stops is an array of tuples, where the
     * first item is a float between 0 and 1 assigning the relative position in
     * the gradient, and the second item is the color.
     *
     * For solid gauges, the Y axis also inherits the concept of data classes
     * from the Highmaps color axis.
     */
    stops?: Array<[number, ColorType]>;
    /**
     * (Highcharts, Highstock, Gantt) The amount of ticks to draw on the axis.
     * This opens up for aligning the ticks of multiple charts or panes within a
     * chart. This option overrides the `tickPixelInterval` option.
     *
     * This option only has an effect on linear axes. Datetime, logarithmic or
     * category axes are not affected.
     */
    tickAmount?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: ColorType;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The interval of the tick marks
     * in axis units. When `undefined`, the tick interval is computed to
     * approximately follow the tickPixelInterval on linear and datetime axes.
     * On categorized axes, a `undefined` tickInterval will default to 1, one
     * category. Note that datetime axes are based on milliseconds, so for
     * example an interval of one day is expressed as `24 * 3600 * 1000`.
     *
     * On logarithmic axes, the tickInterval is based on powers, so a
     * tickInterval of 1 means one tick on each of 0.1, 1, 10, 100 etc. A
     * tickInterval of 2 means a tick of 0.1, 10, 1000 etc. A tickInterval of
     * 0.2 puts a tick on 0.1, 0.2, 0.4, 0.6, 0.8, 1, 2, 4, 6, 8, 10, 20, 40
     * etc.
     *
     * If the tickInterval is too dense for labels to be drawn, Highcharts may
     * remove ticks.
     *
     * If the chart has multiple axes, the alignTicks option may interfere with
     * the `tickInterval` setting.
     */
    tickInterval?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel length of the main
     * tick marks.
     */
    tickLength?: number;
    /**
     * (Highcharts, Gantt) For categorized axes only. If `on` the tick mark is
     * placed in the center of the category, if `between` the tick mark is
     * placed between categories. The default is `between` if the `tickInterval`
     * is 1, else `on`.
     */
    tickmarkPlacement?: OptionsTickmarkPlacementValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) If tickInterval is `null` this
     * option sets the approximate pixel interval of the tick marks. Not
     * applicable to categorized axis.
     *
     * The tick interval is also influenced by the minTickInterval option, that,
     * by default prevents ticks from being denser than the data points.
     */
    tickPixelInterval?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The position of the major tick
     * marks relative to the axis line. Can be one of `inside` and `outside`.
     */
    tickPosition?: OptionsTickPositionValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) A callback function returning
     * array defining where the ticks are laid out on the axis. This overrides
     * the default behaviour of tickPixelInterval and tickInterval. The
     * automatic tick positions are accessible through `this.tickPositions` and
     * can be modified by the callback.
     */
    tickPositioner?: AxisTickPositionerCallbackFunction;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) An array defining where the
     * ticks are laid out on the axis. This overrides the default behaviour of
     * tickPixelInterval and tickInterval.
     */
    tickPositions?: Array<number>;
    /**
     * (Highcharts, Highstock, Gantt) The pixel width of the major tick marks.
     */
    tickWidth?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The axis title, showing next to
     * the axis line.
     */
    title?: YAxisTitleOptions;
    /**
     * (Highcharts) Parallel coordinates only. Format that will be used for
     * point.y and available in tooltip.pointFormat as `{point.formattedValue}`.
     * If not set, `{point.formattedValue}` will use other options, in this
     * order:
     *
     * 1. yAxis.labels.format will be used if set
     *
     * 2. If yAxis is a category, then category name will be displayed
     *
     * 3. If yAxis is a datetime, then value will use the same format as yAxis
     * labels
     *
     * 4. If yAxis is linear/logarithmic type, then simple value will be used
     */
    tooltipValueFormat?: string;
    /**
     * (Highcharts, Highstock) The top position of the Y axis. If it's a number,
     * it is interpreted as pixel position relative to the chart.
     *
     * Since Highcharts 2: If it's a percentage string, it is interpreted as
     * percentages of the plot height, offset from plot area top.
     */
    top?: (number|string);
    /**
     * (Highcharts, Gantt) The type of axis. Can be one of `linear`,
     * `logarithmic`, `datetime`, `category` or `treegrid`. Defaults to
     * `treegrid` for Gantt charts, `linear` for other chart types.
     *
     * In a datetime axis, the numbers are given in milliseconds, and tick marks
     * are placed on appropriate values, like full hours or days. In a category
     * or treegrid axis, the point names of the chart's series are used for
     * categories, if a categories array is not defined.
     */
    type?: AxisTypeValue;
    /**
     * (Highcharts, Gantt) Applies only when the axis `type` is `category`. When
     * `uniqueNames` is true, points are placed on the X axis according to their
     * names. If the same point name is repeated in the same or another series,
     * the point is placed on the same X position as other points of the same
     * name. When `uniqueNames` is false, the points are laid out in increasing
     * X positions regardless of their names, and the X axis category will take
     * the name of the last point in each position.
     */
    uniqueNames?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Datetime axis only. An array determining
     * what time intervals the ticks are allowed to fall on. Each array item is
     * an array where the first value is the time unit and the second value
     * another array of allowed multiples.
     *
     * Defaults to: (see online documentation for example)
     */
    units?: Array<[string, (Array<number>|null)]>;
    /**
     * (Highcharts, Highstock, Gantt) Whether axis, including axis title, line,
     * ticks and labels, should be visible.
     */
    visible?: boolean;
    /**
     * (Highcharts, Highstock) The width as the horizontal axis. If it's a
     * number, it is interpreted as pixels.
     *
     * Since Highcharts v5.0.13: If it's a percentage string, it is interpreted
     * as percentages of the total plot width.
     */
    width?: (number|string);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Whether to zoom axis. If
     * `chart.zoomType` is set, the option allows to disable zooming on an
     * individual axis.
     */
    zoomEnabled?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * band. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface YAxisPlotBandsEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface YAxisPlotBandsLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees .
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-band-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The string text itself. A subset of HTML
     * is supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot band. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of colored bands stretching across
 * the plot area marking an interval on the axis.
 *
 * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
 * class in addition to the `className` option.
 */
export interface YAxisPlotBandsOptions {
    /**
     * (Highstock) Flag to decide if plotBand should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Border color for the plot band. Also
     * requires `borderWidth` to be set.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) Border width for the plot band. Also
     * requires `borderColor` to be set.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-band`, to apply to each individual band.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the plot band.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot band. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: YAxisPlotBandsEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The start position of the plot band in
     * axis units.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot band
     * in Axis.removePlotBand.
     */
    id?: string;
    /**
     * (Highcharts) In a gauge chart, this option determines the inner radius of
     * the plot band that stretches along the perimeter. It can be given as a
     * percentage string, like `"100%"`, or as a pixel number, like `100`. By
     * default, the inner radius is controlled by the thickness option.
     */
    innerRadius?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: YAxisPlotBandsLabelOptions;
    /**
     * (Highcharts) In a gauge chart, this option determines the outer radius of
     * the plot band that stretches along the perimeter. It can be given as a
     * percentage string, like `"100%"`, or as a pixel number, like `100`.
     */
    outerRadius?: (number|string);
    /**
     * (Highcharts) In a gauge chart, this option sets the width of the plot
     * band stretching along the perimeter. It can be given as a percentage
     * string, like `"10%"`, or as a pixel number, like `10`. The default value
     * 10 is the same as the default tickLength, thus making the plot band act
     * as a background for the tick markers.
     */
    thickness?: (number|string);
    /**
     * (Highcharts, Highstock, Gantt) The end position of the plot band in axis
     * units.
     */
    to?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot band within the
     * chart, relative to other elements. Using the same z index as another
     * element may give unpredictable results, as the last rendered element will
     * be on top. Values from 0 to 20 make sense.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * line. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface YAxisPlotLinesEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface YAxisPlotLinesLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Callback JavaScript function to format the
     * label. Useful properties like the value of plot line or the range of plot
     * band (`from` & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees.
     * Defaults to 0 for horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The text itself. A subset of HTML is
     * supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot line. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of lines stretching across the plot
 * area, marking a specific value on one of the axes.
 *
 * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
 * class in addition to the `className` option.
 */
export interface YAxisPlotLinesOptions {
    /**
     * (Highstock) Flag to decide if plotLine should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-line`, to apply to each individual line.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the line.
     */
    color?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) The dashing or dot style for the plot
     * line. For possible values see this overview.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot line. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: YAxisPlotLinesEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot line
     * in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: YAxisPlotLinesLabelOptions;
    /**
     * (Highcharts, Highstock, Gantt) The position of the line in axis units.
     */
    value?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width or thickness of the plot line.
     */
    width?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot line within the
     * chart.
     */
    zIndex?: number;
}
/**
 * (Highstock) Contains two arrays of axes that are controlled by control line
 * of the axis.
 */
export interface YAxisResizeControlledAxisOptions {
    /**
     * (Highstock) Array of axes that should move out of the way of resizing
     * being done for the current axis. If not set, the next axis will be used.
     */
    next?: Array<(number|string)>;
    /**
     * (Highstock) Array of axes that should move with the current axis while
     * resizing.
     */
    prev?: Array<(number|string)>;
}
/**
 * (Highstock) Options for axis resizing. It adds a thick line between panes
 * which the user can drag in order to resize the panes.
 */
export interface YAxisResizeOptions {
    /**
     * (Highstock) Contains two arrays of axes that are controlled by control
     * line of the axis.
     */
    controlledAxis?: YAxisResizeControlledAxisOptions;
    /**
     * (Highstock) Cursor style for the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     */
    cursor?: string;
    /**
     * (Highstock) Enable or disable resize by drag for the axis.
     */
    enabled?: boolean;
    /**
     * (Highstock) Color of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     */
    lineColor?: ColorString;
    /**
     * (Highstock) Dash style of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     */
    lineDashStyle?: string;
    /**
     * (Highstock) Width of the control line.
     *
     * In styled mode use class `highcharts-axis-resizer` instead.
     */
    lineWidth?: number;
    /**
     * (Highstock) Horizontal offset of the control line.
     */
    x?: number;
    /**
     * (Highstock) Vertical offset of the control line.
     */
    y?: number;
}
/**
 * (Highstock) An optional scrollbar to display on the Y axis in response to
 * limiting the minimum an maximum of the axis values.
 *
 * In styled mode, all the presentational options for the scrollbar are replaced
 * by the classes `.highcharts-scrollbar-thumb`, `.highcharts-scrollbar-arrow`,
 * `.highcharts-scrollbar-button`, `.highcharts-scrollbar-rifles` and
 * `.highcharts-scrollbar-track`.
 */
export interface YAxisScrollbarOptions {
    /**
     * (Highstock) The background color of the scrollbar itself.
     */
    barBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the scrollbar's border.
     */
    barBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border rounding radius of the bar.
     */
    barBorderRadius?: number;
    /**
     * (Highstock) The width of the bar's border.
     */
    barBorderWidth?: number;
    /**
     * (Highstock) The color of the small arrow inside the scrollbar buttons.
     */
    buttonArrowColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of scrollbar buttons.
     */
    buttonBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the border of the scrollbar buttons.
     */
    buttonBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The corner radius of the scrollbar buttons.
     */
    buttonBorderRadius?: number;
    /**
     * (Highstock) The border width of the scrollbar buttons.
     */
    buttonBorderWidth?: number;
    /**
     * (Highstock) Enable the scrollbar on the Y axis.
     */
    enabled?: boolean;
    /**
     * (Highstock) Whether to redraw the main chart as the scrollbar or the
     * navigator zoomed window is moved. Defaults to `true` for modern browsers
     * and `false` for legacy IE browsers as well as mobile devices.
     */
    liveRedraw?: boolean;
    /**
     * (Highstock) Pixel margin between the scrollbar and the axis elements.
     */
    margin?: number;
    /**
     * (Highstock) The minimum width of the scrollbar.
     */
    minWidth?: number;
    /**
     * (Highstock) The color of the small rifles in the middle of the scrollbar.
     */
    rifleColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Whether to show the scrollbar when it is fully zoomed out at
     * max range. Setting it to `false` on the Y axis makes the scrollbar stay
     * hidden until the user zooms in, like common in browsers.
     */
    showFull?: boolean;
    /**
     * (Highstock) The width of a vertical scrollbar or height of a horizontal
     * scrollbar. Defaults to 20 on touch devices.
     */
    size?: number;
    /**
     * (Highstock) The color of the track background.
     */
    trackBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the border of the scrollbar track.
     */
    trackBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The corner radius of the border of the scrollbar track.
     */
    trackBorderRadius?: number;
    /**
     * (Highstock) The width of the border of the scrollbar track.
     */
    trackBorderWidth?: number;
    /**
     * (Highstock) Z index of the scrollbar elements.
     */
    zIndex?: number;
}
/**
 * (Highcharts) Enable or disable the initial animation when a series is
 * displayed for the `stackLabels`. The animation can also be set as a
 * configuration object. Please note that this option only applies to the
 * initial animation. For other animations, see chart.animation and the
 * animation parameter under the API methods. The following properties are
 * supported:
 *
 * - `defer`: The animation delay time in milliseconds.
 */
export interface YAxisStackLabelsAnimationOptions {
    /**
     * (Highcharts) The animation delay time in milliseconds. Set to `0` renders
     * stackLabel immediately. As `undefined` inherits defer time from the
     * series.animation.defer.
     */
    defer?: number;
}
/**
 * (Highcharts) The stack labels show the total value for each bar in a stacked
 * column or bar chart. The label will be placed on top of positive columns and
 * below negative columns. In case of an inverted column chart or a bar chart
 * the label is placed to the right of positive bars and to the left of negative
 * bars.
 */
export interface YAxisStackLabelsOptions {
    /**
     * (Highcharts) Defines the horizontal alignment of the stack total label.
     * Can be one of `"left"`, `"center"` or `"right"`. The default value is
     * calculated at runtime and depends on orientation and whether the stack is
     * positive or negative.
     */
    align?: AlignValue;
    /**
     * (Highcharts) Allow the stack labels to overlap.
     */
    allowOverlap?: boolean;
    /**
     * (Highcharts) Enable or disable the initial animation when a series is
     * displayed for the `stackLabels`. The animation can also be set as a
     * configuration object. Please note that this option only applies to the
     * initial animation. For other animations, see chart.animation and the
     * animation parameter under the API methods. The following properties are
     * supported:
     *
     * - `defer`: The animation delay time in milliseconds.
     */
    animation?: (boolean|YAxisStackLabelsAnimationOptions|Partial<AnimationOptionsObject>);
    /**
     * (Highcharts) The background color or gradient for the stack label.
     */
    backgroundColor?: ColorType;
    /**
     * (Highcharts) The border color for the stack label. Defaults to
     * `undefined`.
     */
    borderColor?: ColorType;
    /**
     * (Highcharts) The border radius in pixels for the stack label.
     */
    borderRadius?: number;
    /**
     * (Highcharts) The border width in pixels for the stack label.
     */
    borderWidth?: number;
    /**
     * (Highcharts) Whether to hide stack labels that are outside the plot area.
     * By default, the stack label is moved inside the plot area according to
     * the overflow option.
     */
    crop?: boolean;
    /**
     * (Highcharts) Enable or disable the stack total labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts, Highstock) A format string for the data label. Available
     * variables are the same as for `formatter`.
     */
    format?: string;
    /**
     * (Highcharts) Callback JavaScript function to format the label. The value
     * is given by `this.total`.
     */
    formatter?: FormatterCallbackFunction<StackItemObject>;
    /**
     * (Highcharts) How to handle stack total labels that flow outside the plot
     * area. The default is set to `"justify"`, which aligns them inside the
     * plot area. For columns and bars, this means it will be moved inside the
     * bar. To display stack labels outside the plot area, set `crop` to `false`
     * and `overflow` to `"allow"`.
     */
    overflow?: DataLabelsOverflowValue;
    /**
     * (Highcharts) Rotation of the labels in degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) CSS styles for the label.
     *
     * In styled mode, the styles are set in the `.highcharts-stack-label`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts) The text alignment for the label. While `align` determines
     * where the texts anchor point is placed with regards to the stack,
     * `textAlign` determines how the text is aligned against its anchor point.
     * Possible values are `"left"`, `"center"` and `"right"`. The default value
     * is calculated at runtime and depends on orientation and whether the stack
     * is positive or negative.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts) Defines the vertical alignment of the stack total label. Can
     * be one of `"top"`, `"middle"` or `"bottom"`. The default value is
     * calculated at runtime and depends on orientation and whether the stack is
     * positive or negative.
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts) The x position offset of the label relative to the left of
     * the stacked bar. The default value is calculated at runtime and depends
     * on orientation and whether the stack is positive or negative.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of the label relative to the tick
     * position on the axis. The default value is calculated at runtime and
     * depends on orientation and whether the stack is positive or negative.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Highmaps, Gantt) The axis title, showing next to the
 * axis line.
 */
export interface YAxisTitleOptions {
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alignment of the title relative
     * to the axis values. Possible values are "low", "middle" or "high".
     */
    align?: AxisTitleAlignValue;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The pixel distance between the
     * axis labels and the title. Positive values are outside the axis line,
     * negative are inside.
     */
    margin?: number;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The distance of the axis title
     * from the axis line. By default, this distance is computed from the offset
     * width of the labels, the labels' distance from the axis and the title's
     * margin. However when the offset option is set, it overrides all this.
     */
    offset?: number;
    /**
     * (Highcharts) Defines how the title is repositioned according to the 3D
     * chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     *
     * - `undefined`: Will use the config from `labels.position3d`
     */
    position3d?: ("chart"|"flap"|"offset"|"ortho"|null);
    /**
     * (Highcharts, Highstock, Gantt) Whether to reserve space for the title
     * when laying out the axis.
     */
    reserveSpace?: boolean;
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) The rotation of the text in
     * degrees. 0 is horizontal, 270 is vertical reading from bottom to top.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis title will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `title.position3d`.
     *
     * A `null` value will use the config from `labels.skew3d`.
     */
    skew3d?: (boolean|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) CSS styles for the title. If the
     * title text is longer than the axis length, it will wrap to multiple lines
     * by default. This can be customized by setting `textOverflow: 'ellipsis'`,
     * by setting a specific `width` or by setting `whiteSpace: 'nowrap'`.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-title`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The actual text of the axis title.
     * Horizontal texts can contain HTML, but rotated texts are painted using
     * vector techniques and must be clean text. The Y axis title is disabled by
     * setting the `text` option to `undefined`.
     */
    text?: (string|null);
    /**
     * (Highcharts, Highstock, Highmaps, Gantt) Alignment of the text, can be
     * `"left"`, `"right"` or `"center"`. Default alignment depends on the
     * title.align:
     *
     * Horizontal axes:
     *
     * - for `align` = `"low"`, `textAlign` is set to `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"`, `textAlign` is set to `right`
     *
     * Vertical axes:
     *
     * - for `align` = `"low"` and `opposite` = `true`, `textAlign` is set to
     * `right`
     *
     * - for `align` = `"low"` and `opposite` = `false`, `textAlign` is set to
     * `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"` and `opposite` = `true` `textAlign` is set to
     * `left`
     *
     * - for `align` = `"high"` and `opposite` = `false` `textAlign` is set to
     * `right`
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the axis
     * title.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal pixel offset of the title
     * position.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical pixel offset of the title
     * position.
     */
    y?: number;
}
/**
 * (Gantt) An object defining mouse events for the plot line. Supported
 * properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface ZAxisCurrentDateIndicatorEventsOptions {
    /**
     * (Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse out event on the corner of a plot band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Gantt) Text labels for the plot bands
 */
export interface ZAxisCurrentDateIndicatorLabelOptions {
    /**
     * (Gantt) Horizontal alignment of the label. Can be one of "left", "center"
     * or "right".
     */
    align?: AlignValue;
    /**
     * (Gantt) Format of the label. This options is passed as the fist argument
     * to dateFormat function.
     */
    format?: string;
    /**
     * (Gantt) Callback JavaScript function to format the label. Useful
     * properties like the value of plot line or the range of plot band (`from`
     * & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Gantt) Rotation of the text label in degrees. Defaults to 0 for
     * horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Gantt) The text itself. A subset of HTML is supported.
     */
    text?: string;
    /**
     * (Gantt) The text alignment for the label. While `align` determines where
     * the texts anchor point is placed within the plot band, `textAlign`
     * determines how the text is aligned against its anchor point. Possible
     * values are "left", "center" and "right". Defaults to the same as the
     * `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Gantt) Vertical alignment of the label relative to the plot line. Can be
     * one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Gantt) Horizontal position relative the alignment. Default varies by
     * orientation.
     */
    x?: number;
    /**
     * (Gantt) Vertical position of the text baseline relative to the alignment.
     * Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts) Event handlers for the axis.
 */
export interface ZAxisEventsOptions {
    /**
     * (Highcharts, Gantt) An event fired after the breaks have rendered.
     */
    afterBreaks?: AxisEventCallbackFunction;
    /**
     * (Highcharts) As opposed to the `setExtremes` event, this event fires
     * after the final min and max values are computed and corrected for
     * `minRange`.
     *
     * Fires when the minimum and maximum is set for the axis, either by calling
     * the `.setExtremes()` method or by selecting an area in the chart. One
     * parameter, `event`, is passed to the function, containing common event
     * information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in axis
     * values. The actual data extremes are found in `event.dataMin` and
     * `event.dataMax`.
     */
    afterSetExtremes?: AxisSetExtremesEventCallbackFunction;
    /**
     * (Highcharts, Gantt) An event fired when a break from this axis occurs on
     * a point.
     */
    pointBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts, Highstock, Gantt) An event fired when a point falls inside a
     * break from this axis.
     */
    pointInBreak?: AxisPointBreakEventCallbackFunction;
    /**
     * (Highcharts) Fires when the minimum and maximum is set for the axis,
     * either by calling the `.setExtremes()` method or by selecting an area in
     * the chart. One parameter, `event`, is passed to the function, containing
     * common event information.
     *
     * The new user set minimum and maximum values can be found by `event.min`
     * and `event.max`. These reflect the axis minimum and maximum in data
     * values. When an axis is zoomed all the way out from the "Reset zoom"
     * button, `event.min` and `event.max` are null, and the new extremes are
     * set based on `this.dataMin` and `this.dataMax`.
     */
    setExtremes?: AxisSetExtremesEventCallbackFunction;
}
/**
 * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
 */
export interface ZAxisGridOptions {
    /**
     * (Gantt) Set border color for the label grid lines.
     */
    borderColor?: ColorString;
    /**
     * (Gantt) Set border width of the label grid lines.
     */
    borderWidth?: number;
    /**
     * (Gantt) Set cell height for grid axis labels. By default this is
     * calculated from font size. This option only applies to horizontal axes.
     */
    cellHeight?: number;
    /**
     * (Gantt) Set specific options for each column (or row for horizontal axes)
     * in the grid. Each extra column/row is its own axis, and the axis options
     * can be set here.
     */
    columns?: Array<XAxisOptions>;
    /**
     * (Gantt) Enable grid on the axis labels. Defaults to true for Gantt
     * charts.
     */
    enabled?: boolean;
}
/**
 * (Highcharts) The axis labels show the number or category for each tick.
 *
 * Since v8.0.0: Labels are animated in categorized x-axis with updating data if
 * `tickInterval` and `step` is set to 1.
 */
export interface ZAxisLabelsOptions {
    /**
     * (Highcharts) What part of the string the given position is anchored to.
     * If `left`, the left side of the string is at the axis position. Can be
     * one of `"left"`, `"center"` or `"right"`. Defaults to an intelligent
     * guess based on which side of the chart the axis is on and the rotation of
     * the label.
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) For horizontal axes, the allowed degrees
     * of label rotation to prevent overlapping labels. If there is enough
     * space, labels are not rotated. As the chart gets narrower, it will start
     * rotating the labels -45 degrees, then remove every second label and try
     * again with rotations 0 and -45 etc. Set it to `false` to disable
     * rotation, which will cause the labels to word-wrap if possible.
     */
    autoRotation?: (false|Array<number>);
    /**
     * (Highcharts, Gantt) When each category width is more than this many
     * pixels, we don't apply auto rotation. Instead, we lay out the axis label
     * with word wrap. A lower limit makes sense when the label contains
     * multiple short words that don't extend the available horizontal space for
     * each label.
     */
    autoRotationLimit?: number;
    /**
     * (Highcharts, Gantt) Polar charts only. The label's pixel distance from
     * the perimeter of the plot area.
     */
    distance?: number;
    /**
     * (Highcharts) Enable or disable the axis labels.
     */
    enabled?: boolean;
    /**
     * (Highcharts) A format string for the axis label.
     */
    format?: string;
    /**
     * (Highcharts) Callback JavaScript function to format the label. The value
     * is given by `this.value`. Additional properties for `this` are `axis`,
     * `chart`, `isFirst` and `isLast`. The value of the default label formatter
     * can be retrieved by calling `this.axis.defaultLabelFormatter.call(this)`
     * within the function.
     *
     * Defaults to: (see online documentation for example)
     */
    formatter?: AxisLabelsFormatterCallbackFunction;
    /**
     * (Gantt) The number of pixels to indent the labels per level in a treegrid
     * axis.
     */
    indentation?: number;
    /**
     * (Highcharts) How to handle overflowing labels on horizontal axis. If set
     * to `"allow"`, it will not be aligned at all. By default it `"justify"`
     * labels inside the chart area. If there is room to move it, it will be
     * aligned to the edge, else it will be removed.
     */
    overflow?: OptionsOverflowValue;
    /**
     * (Highcharts, Gantt) The pixel padding for axis labels, to ensure white
     * space between them.
     */
    padding?: number;
    /**
     * (Highcharts) Defines how the labels are be repositioned according to the
     * 3D chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     */
    position3d?: OptionsPosition3dValue;
    /**
     * (Highcharts, Gantt) Whether to reserve space for the labels. By default,
     * space is reserved for the labels in these cases:
     *
     * * On all horizontal axes.
     *
     * * On vertical axes if `label.align` is `right` on a left-side axis or
     * `left` on a right-side axis.
     *
     * * On vertical axes if `label.align` is `center`.
     *
     * This can be turned off when for example the labels are rendered inside
     * the plot area instead of outside.
     */
    reserveSpace?: boolean;
    /**
     * (Highcharts) Rotation of the labels in degrees.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis labels will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `labels.position3d`.
     */
    skew3d?: boolean;
    /**
     * (Highcharts) Horizontal axes only. The number of lines to spread the
     * labels over to make room or tighter labels.
     */
    staggerLines?: number;
    /**
     * (Highcharts) To show only every _n_'th label on the axis, set the step to
     * _n_. Setting the step to 2 shows every other label.
     *
     * By default, the step is calculated automatically to avoid overlap. To
     * prevent this, set it to 1\. This usually only happens on a category axis,
     * and is often a sign that you have chosen the wrong axis type.
     *
     * Read more at Axis docs => What axis should I use?
     */
    step?: number;
    /**
     * (Highcharts) CSS styles for the label. Use `whiteSpace: 'nowrap'` to
     * prevent wrapping of category labels. Use `textOverflow: 'none'` to
     * prevent ellipsis (dots).
     *
     * In styled mode, the labels are styled with the `.highcharts-axis-labels`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts) The x position offset of all labels relative to the tick
     * positions on the axis.
     */
    x?: number;
    /**
     * (Highcharts) The y position offset of all labels relative to the tick
     * positions on the axis. The default makes it adapt to the font size of the
     * bottom axis.
     */
    y?: number;
    /**
     * (Highcharts) The Z index for the axis labels.
     */
    zIndex?: number;
}
/**
 * (Highcharts) The Z axis or depth axis for 3D plots.
 *
 * See the Axis class for programmatic access to the axis.
 */
export interface ZAxisOptions {
    /**
     * (Highcharts) Accessibility options for an axis. Requires the
     * accessibility module.
     */
    accessibility?: AxisAccessibilityOptionsObject;
    /**
     * (Highcharts, Highstock, Gantt) When using multiple axis, the ticks of two
     * or more opposite axes will automatically be aligned by adding ticks to
     * the axis or axes with the least ticks, as if `tickAmount` were specified.
     *
     * This can be prevented by setting `alignTicks` to false. If the grid lines
     * look messy, it's a good idea to hide them for the secondary axis by
     * setting `gridLineWidth` to 0.
     *
     * If `startOnTick` or `endOnTick` in an Axis options are set to false, then
     * the `alignTicks ` will be disabled for the Axis.
     *
     * Disabled for logarithmic axes.
     */
    alignTicks?: boolean;
    /**
     * (Highcharts) Whether to allow decimals in this axis' ticks. When counting
     * integers, like persons or hits on a web page, decimals should be avoided
     * in the labels.
     */
    allowDecimals?: boolean;
    /**
     * (Highcharts) When using an alternate grid color, a band is painted across
     * the plot area between every other grid line.
     */
    alternateGridColor?: ColorType;
    /**
     * (Highcharts) In a polar chart, this is the angle of the Y axis in
     * degrees, where 0 is up and 90 is right. The angle determines the position
     * of the axis line and the labels, though the coordinate system is
     * unaffected. Since v8.0.0 this option is also applicable for X axis
     * (inverted polar).
     */
    angle?: number;
    /**
     * (Highcharts, Gantt) If categories are present for the xAxis, names are
     * used instead of numbers for that axis.
     *
     * Since Highcharts 3.0, categories can also be extracted by giving each
     * point a name and setting axis type to `category`. However, if you have
     * multiple series, best practice remains defining the `categories` array.
     *
     * Example: `categories: ['Apples', 'Bananas', 'Oranges']`
     */
    categories?: Array<string>;
    /**
     * (Highcharts, Highstock, Gantt) The highest allowed value for
     * automatically computed axis extremes.
     */
    ceiling?: number;
    /**
     * (Highcharts) A class name that opens for styling the axis by CSS,
     * especially in Highcharts styled mode. The class name is applied to group
     * elements for the grid, axis elements and labels.
     */
    className?: string;
    /**
     * (Gantt) Show an indicator on the axis for the current date and time. Can
     * be a boolean or a configuration object similar to xAxis.plotLines.
     */
    currentDateIndicator?: (boolean|AxisCurrentDateIndicatorOptions);
    /**
     * (Highcharts, Highstock, Gantt) For a datetime axis, the scale will
     * automatically adjust to the appropriate unit. This member gives the
     * default string representations used for each unit. For intermediate
     * values, different units may be used, for example the `day` unit can be
     * used on midnight and `hour` unit be used for intermediate values on the
     * same axis.
     *
     * For an overview of the replacement codes, see dateFormat.
     *
     * Defaults to: (see online documentation for example)
     */
    dateTimeLabelFormats?: AxisDateTimeLabelFormatsOptions;
    /**
     * (Highcharts) Whether to force the axis to end on a tick. Use this option
     * with the `maxPadding` option to control the axis end.
     */
    endOnTick?: boolean;
    /**
     * (Highcharts) Event handlers for the axis.
     */
    events?: ZAxisEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The lowest allowed value for automatically
     * computed axis extremes.
     */
    floor?: number;
    /**
     * (Gantt) Set grid options for the axis labels. Requires Highcharts Gantt.
     */
    grid?: ZAxisGridOptions;
    /**
     * (Highcharts) Color of the grid lines extending the ticks across the plot
     * area.
     *
     * In styled mode, the stroke is given in the `.highcharts-grid-line` class.
     */
    gridLineColor?: ColorType;
    /**
     * (Highcharts) The dash or dot style of the grid lines. For possible
     * values, see this demonstration.
     */
    gridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Polar charts only. Whether the grid lines should draw as a
     * polygon with straight lines between categories, or as circles. Can be
     * either `circle` or `polygon`. Since v8.0.0 this option is also applicable
     * for X axis (inverted polar).
     */
    gridLineInterpolation?: OptionsGridLineInterpolationValue;
    /**
     * (Highcharts) The width of the grid lines extending the ticks across the
     * plot area.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    gridLineWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) The Z index of the grid lines.
     */
    gridZIndex?: number;
    /**
     * (Highcharts) An id for the axis. This can be used after render time to
     * get a pointer to the axis object through `chart.get()`.
     */
    id?: string;
    /**
     * (Highcharts) The axis labels show the number or category for each tick.
     *
     * Since v8.0.0: Labels are animated in categorized x-axis with updating
     * data if `tickInterval` and `step` is set to 1.
     */
    labels?: ZAxisLabelsOptions;
    /**
     * (Highcharts, Highstock, Gantt) Index of another axis that this axis is
     * linked to. When an axis is linked to a master axis, it will take the same
     * extremes as the master, but as assigned by min or max or by setExtremes.
     * It can be used to show additional info, or to ease reading the chart by
     * duplicating the scales.
     */
    linkedTo?: number;
    /**
     * (Highcharts) If there are multiple axes on the same side of the chart,
     * the pixel margin between the axes. Defaults to 0 on vertical axes, 15 on
     * horizontal axes.
     */
    margin?: number;
    /**
     * (Highcharts) The maximum value of the axis. If `null`, the max value is
     * automatically calculated.
     *
     * If the endOnTick option is true, the `max` value might be rounded up.
     *
     * If a tickAmount is set, the axis may be extended beyond the set max in
     * order to reach the given number of ticks. The same may happen in a chart
     * with multiple axes, determined by chart. alignTicks, where a `tickAmount`
     * is applied internally.
     */
    max?: (number|null);
    /**
     * (Highcharts) Padding of the max value relative to the length of the axis.
     * A padding of 0.05 will make a 100px axis 5px longer. This is useful when
     * you don't want the highest data value to appear on the edge of the plot
     * area. When the axis' `max` option is set or a max extreme is set using
     * `axis.setExtremes()`, the maxPadding will be ignored.
     */
    maxPadding?: number;
    /**
     * (Highstock, Gantt) Maximum range which can be set using the navigator's
     * handles. Opposite of xAxis.minRange.
     */
    maxRange?: number;
    /**
     * (Highcharts) The minimum value of the axis. If `null` the min value is
     * automatically calculated.
     *
     * If the startOnTick option is true (default), the `min` value might be
     * rounded down.
     *
     * The automatically calculated minimum value is also affected by floor,
     * softMin, minPadding, minRange as well as series.threshold and
     * series.softThreshold.
     */
    min?: (number|null);
    /**
     * (Highcharts) Color of the minor, secondary grid lines.
     *
     * In styled mode, the stroke width is given in the
     * `.highcharts-minor-grid-line` class.
     */
    minorGridLineColor?: ColorType;
    /**
     * (Highcharts) The dash or dot style of the minor grid lines. For possible
     * values, see this demonstration.
     */
    minorGridLineDashStyle?: DashStyleValue;
    /**
     * (Highcharts) Width of the minor, secondary grid lines.
     *
     * In styled mode, the stroke width is given in the `.highcharts-grid-line`
     * class.
     */
    minorGridLineWidth?: number;
    /**
     * (Highcharts) Color for the minor tick marks.
     */
    minorTickColor?: ColorType;
    /**
     * (Highcharts) Specific tick interval in axis units for the minor ticks. On
     * a linear axis, if `"auto"`, the minor tick interval is calculated as a
     * fifth of the tickInterval. If `null` or `undefined`, minor ticks are not
     * shown.
     *
     * On logarithmic axes, the unit is the power of the value. For example,
     * setting the minorTickInterval to 1 puts one tick on each of 0.1, 1, 10,
     * 100 etc. Setting the minorTickInterval to 0.1 produces 9 ticks between 1
     * and 10, 10 and 100 etc.
     *
     * If user settings dictate minor ticks to become too dense, they don't make
     * sense, and will be ignored to prevent performance problems.
     */
    minorTickInterval?: (number|string|null);
    /**
     * (Highcharts) The pixel length of the minor tick marks.
     */
    minorTickLength?: number;
    /**
     * (Highcharts) The position of the minor tick marks relative to the axis
     * line. Can be one of `inside` and `outside`.
     */
    minorTickPosition?: OptionsMinorTickPositionValue;
    /**
     * (Highcharts) Enable or disable minor ticks. Unless minorTickInterval is
     * set, the tick interval is calculated as a fifth of the `tickInterval`.
     *
     * On a logarithmic axis, minor ticks are laid out based on a best guess,
     * attempting to enter approximately 5 minor ticks between each major tick.
     *
     * Prior to v6.0.0, ticks were unabled in auto layout by setting
     * `minorTickInterval` to `"auto"`.
     */
    minorTicks?: boolean;
    /**
     * (Highcharts) The pixel width of the minor tick mark.
     */
    minorTickWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) Padding of the min value relative to the
     * length of the axis. A padding of 0.05 will make a 100px axis 5px longer.
     * This is useful when you don't want the lowest data value to appear on the
     * edge of the plot area. When the axis' `min` option is set or a min
     * extreme is set using `axis.setExtremes()`, the minPadding will be
     * ignored.
     */
    minPadding?: number;
    /**
     * (Highcharts) The minimum range to display on this axis. The entire axis
     * will not be allowed to span over a smaller interval than this. For
     * example, for a datetime axis the main unit is milliseconds. If minRange
     * is set to 3600000, you can't zoom in more than to one hour.
     *
     * The default minRange for the x axis is five times the smallest interval
     * between any of the data points.
     *
     * On a logarithmic axis, the unit for the minimum range is the power. So a
     * minRange of 1 means that the axis can be zoomed to 10-100, 100-1000,
     * 1000-10000 etc.
     *
     * **Note**: The `minPadding`, `maxPadding`, `startOnTick` and `endOnTick`
     * settings also affect how the extremes of the axis are computed.
     */
    minRange?: number;
    /**
     * (Highcharts) The minimum tick interval allowed in axis values. For
     * example on zooming in on an axis with daily data, this can be used to
     * prevent the axis from showing hours. Defaults to the closest distance
     * between two points on the axis.
     */
    minTickInterval?: number;
    /**
     * (Highcharts) The distance in pixels from the plot area to the axis line.
     * A positive offset moves the axis with it's line, labels and ticks away
     * from the plot area. This is typically used when two or more axes are
     * displayed on the same side of the plot. With multiple axes the offset is
     * dynamically adjusted to avoid collision, this can be overridden by
     * setting offset explicitly.
     */
    offset?: number;
    /**
     * (Highcharts) Whether to display the axis on the opposite side of the
     * normal. The normal is on the left side for vertical axes and bottom for
     * horizontal, so the opposite sides will be right and top respectively.
     * This is typically used with dual or multiple axes.
     */
    opposite?: boolean;
    /**
     * (Highstock) In an ordinal axis, the points are equally spaced in the
     * chart regardless of the actual time or x distance between them. This
     * means that missing data periods (e.g. nights or weekends for a stock
     * chart) will not take up space in the chart. Having `ordinal: false` will
     * show any gaps created by the `gapSize` setting proportionate to their
     * duration.
     *
     * In stock charts the X axis is ordinal by default, unless the boost module
     * is used and at least one of the series' data length exceeds the
     * boostThreshold.
     */
    ordinal?: boolean;
    /**
     * (Highstock) Additional range on the right side of the xAxis. Works
     * similar to `xAxis.maxPadding`, but value is set in milliseconds. Can be
     * set for both main `xAxis` and the navigator's `xAxis`.
     */
    overscroll?: number;
    /**
     * (Highcharts) Refers to the index in the panes array. Used for circular
     * gauges and polar charts. When the option is not set then first pane will
     * be used.
     */
    pane?: number;
    /**
     * (Highcharts, Highstock, Gantt) An array of colored bands stretching
     * across the plot area marking an interval on the axis.
     *
     * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
     * class in addition to the `className` option.
     */
    plotBands?: Array<ZAxisPlotBandsOptions>;
    /**
     * (Highcharts, Highstock, Gantt) An array of lines stretching across the
     * plot area, marking a specific value on one of the axes.
     *
     * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
     * class in addition to the `className` option.
     */
    plotLines?: Array<ZAxisPlotLinesOptions>;
    /**
     * (Highstock) The zoomed range to display when only defining one or none of
     * `min` or `max`. For example, to show the latest month, a range of one
     * month can be set.
     */
    range?: number;
    /**
     * (Highcharts) Whether to reverse the axis so that the highest number is
     * closest to the origin. If the chart is inverted, the x axis is reversed
     * by default.
     */
    reversed?: boolean;
    /**
     * (Highcharts, Highstock) This option determines how stacks should be
     * ordered within a group. For example reversed xAxis also reverses stacks,
     * so first series comes last in a group. To keep order like for
     * non-reversed xAxis enable this option.
     */
    reversedStacks?: boolean;
    /**
     * (Highstock) An optional scrollbar to display on the X axis in response to
     * limiting the minimum and maximum of the axis values.
     *
     * In styled mode, all the presentational options for the scrollbar are
     * replaced by the classes `.highcharts-scrollbar-thumb`,
     * `.highcharts-scrollbar-arrow`, `.highcharts-scrollbar-button`,
     * `.highcharts-scrollbar-rifles` and `.highcharts-scrollbar-track`.
     */
    scrollbar?: ZAxisScrollbarOptions;
    /**
     * (Highcharts) Whether to show the first tick label.
     */
    showFirstLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Whether to show the last tick label.
     * Defaults to `true` on cartesian charts, and `false` on polar charts.
     */
    showLastLabel?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A soft maximum for the axis. If the series
     * data maximum is less than this, the axis will stay at this maximum, but
     * if the series data maximum is higher, the axis will flex to show all
     * data.
     */
    softMax?: number;
    /**
     * (Highcharts, Highstock, Gantt) A soft minimum for the axis. If the series
     * data minimum is greater than this, the axis will stay at this minimum,
     * but if the series data minimum is lower, the axis will flex to show all
     * data.
     */
    softMin?: number;
    /**
     * (Highcharts, Highstock, Gantt) For datetime axes, this decides where to
     * put the tick between weeks. 0 = Sunday, 1 = Monday.
     */
    startOfWeek?: number;
    /**
     * (Highcharts) Whether to force the axis to start on a tick. Use this
     * option with the `minPadding` option to control the axis start.
     */
    startOnTick?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) The amount of ticks to draw on the axis.
     * This opens up for aligning the ticks of multiple charts or panes within a
     * chart. This option overrides the `tickPixelInterval` option.
     *
     * This option only has an effect on linear axes. Datetime, logarithmic or
     * category axes are not affected.
     */
    tickAmount?: number;
    /**
     * (Highcharts) Color for the main tick marks.
     *
     * In styled mode, the stroke is given in the `.highcharts-tick` class.
     */
    tickColor?: ColorType;
    /**
     * (Highcharts) The interval of the tick marks in axis units. When
     * `undefined`, the tick interval is computed to approximately follow the
     * tickPixelInterval on linear and datetime axes. On categorized axes, a
     * `undefined` tickInterval will default to 1, one category. Note that
     * datetime axes are based on milliseconds, so for example an interval of
     * one day is expressed as `24 * 3600 * 1000`.
     *
     * On logarithmic axes, the tickInterval is based on powers, so a
     * tickInterval of 1 means one tick on each of 0.1, 1, 10, 100 etc. A
     * tickInterval of 2 means a tick of 0.1, 10, 1000 etc. A tickInterval of
     * 0.2 puts a tick on 0.1, 0.2, 0.4, 0.6, 0.8, 1, 2, 4, 6, 8, 10, 20, 40
     * etc.
     *
     * If the tickInterval is too dense for labels to be drawn, Highcharts may
     * remove ticks.
     *
     * If the chart has multiple axes, the alignTicks option may interfere with
     * the `tickInterval` setting.
     */
    tickInterval?: number;
    /**
     * (Highcharts) The pixel length of the main tick marks.
     */
    tickLength?: number;
    /**
     * (Highcharts, Gantt) For categorized axes only. If `on` the tick mark is
     * placed in the center of the category, if `between` the tick mark is
     * placed between categories. The default is `between` if the `tickInterval`
     * is 1, else `on`.
     */
    tickmarkPlacement?: OptionsTickmarkPlacementValue;
    /**
     * (Highcharts) If tickInterval is `null` this option sets the approximate
     * pixel interval of the tick marks. Not applicable to categorized axis.
     *
     * The tick interval is also influenced by the minTickInterval option, that,
     * by default prevents ticks from being denser than the data points.
     */
    tickPixelInterval?: number;
    /**
     * (Highcharts) The position of the major tick marks relative to the axis
     * line. Can be one of `inside` and `outside`.
     */
    tickPosition?: OptionsTickPositionValue;
    /**
     * (Highcharts) A callback function returning array defining where the ticks
     * are laid out on the axis. This overrides the default behaviour of
     * tickPixelInterval and tickInterval. The automatic tick positions are
     * accessible through `this.tickPositions` and can be modified by the
     * callback.
     */
    tickPositioner?: AxisTickPositionerCallbackFunction;
    /**
     * (Highcharts) An array defining where the ticks are laid out on the axis.
     * This overrides the default behaviour of tickPixelInterval and
     * tickInterval.
     */
    tickPositions?: Array<number>;
    /**
     * (Highcharts) The pixel width of the major tick marks. Defaults to 0 on
     * category axes, otherwise 1.
     *
     * In styled mode, the stroke width is given in the `.highcharts-tick`
     * class, but in order for the element to be generated on category axes, the
     * option must be explicitly set to 1.
     */
    tickWidth?: (number|undefined);
    /**
     * (Highcharts) The axis title, showing next to the axis line.
     */
    title?: ZAxisTitleOptions;
    /**
     * (Highcharts, Gantt) The type of axis. Can be one of `linear`,
     * `logarithmic`, `datetime` or `category`. In a datetime axis, the numbers
     * are given in milliseconds, and tick marks are placed on appropriate
     * values like full hours or days. In a category axis, the point names of
     * the chart's series are used for categories, if not a categories array is
     * defined.
     */
    type?: AxisTypeValue;
    /**
     * (Highcharts, Gantt) Applies only when the axis `type` is `category`. When
     * `uniqueNames` is true, points are placed on the X axis according to their
     * names. If the same point name is repeated in the same or another series,
     * the point is placed on the same X position as other points of the same
     * name. When `uniqueNames` is false, the points are laid out in increasing
     * X positions regardless of their names, and the X axis category will take
     * the name of the last point in each position.
     */
    uniqueNames?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Datetime axis only. An array determining
     * what time intervals the ticks are allowed to fall on. Each array item is
     * an array where the first value is the time unit and the second value
     * another array of allowed multiples.
     *
     * Defaults to: (see online documentation for example)
     */
    units?: Array<[string, (Array<number>|null)]>;
    /**
     * (Highcharts, Highstock, Gantt) Whether axis, including axis title, line,
     * ticks and labels, should be visible.
     */
    visible?: boolean;
    /**
     * (Highcharts) Whether to zoom axis. If `chart.zoomType` is set, the option
     * allows to disable zooming on an individual axis.
     */
    zoomEnabled?: boolean;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * band. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface ZAxisPlotBandsEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface ZAxisPlotBandsLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees .
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-band-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The string text itself. A subset of HTML
     * is supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot band. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of colored bands stretching across
 * the plot area marking an interval on the axis.
 *
 * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
 * class in addition to the `className` option.
 */
export interface ZAxisPlotBandsOptions {
    /**
     * (Highstock) Flag to decide if plotBand should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Border color for the plot band. Also
     * requires `borderWidth` to be set.
     */
    borderColor?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) Border width for the plot band. Also
     * requires `borderColor` to be set.
     */
    borderWidth?: number;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-band`, to apply to each individual band.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the plot band.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot band. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: ZAxisPlotBandsEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) The start position of the plot band in
     * axis units.
     */
    from?: number;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot band
     * in Axis.removePlotBand.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: ZAxisPlotBandsLabelOptions;
    /**
     * (Highcharts, Highstock, Gantt) The end position of the plot band in axis
     * units.
     */
    to?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot band within the
     * chart, relative to other elements. Using the same z index as another
     * element may give unpredictable results, as the last rendered element will
     * be on top. Values from 0 to 20 make sense.
     */
    zIndex?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An object defining mouse events for the plot
 * line. Supported properties are `click`, `mouseover`, `mouseout`, `mousemove`.
 */
export interface ZAxisPlotLinesEventsOptions {
    /**
     * (Highcharts, Highstock, Gantt) Click event on a plot band.
     */
    click?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse move event on a plot band.
     */
    mousemove?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse out event on the corner of a plot
     * band.
     */
    mouseout?: EventCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Mouse over event on a plot band.
     */
    mouseover?: EventCallbackFunction<PlotLineOrBand>;
}
/**
 * (Highcharts, Highstock, Gantt) Text labels for the plot bands
 */
export interface ZAxisPlotLinesLabelOptions {
    /**
     * (Highcharts, Highstock, Gantt) Horizontal alignment of the label. Can be
     * one of "left", "center" or "right".
     */
    align?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Callback JavaScript function to format the
     * label. Useful properties like the value of plot line or the range of plot
     * band (`from` & `to` properties) can be found in `this.options` object.
     */
    formatter?: FormatterCallbackFunction<PlotLineOrBand>;
    /**
     * (Highcharts, Highstock, Gantt) Rotation of the text label in degrees.
     * Defaults to 0 for horizontal plot lines and 90 for vertical lines.
     */
    rotation?: number;
    /**
     * (Highcharts, Highstock, Gantt) CSS styles for the text label.
     *
     * In styled mode, the labels are styled by the
     * `.highcharts-plot-line-label` class.
     */
    style?: CSSObject;
    /**
     * (Highcharts, Highstock, Gantt) The text itself. A subset of HTML is
     * supported.
     */
    text?: string;
    /**
     * (Highcharts, Highstock, Gantt) The text alignment for the label. While
     * `align` determines where the texts anchor point is placed within the plot
     * band, `textAlign` determines how the text is aligned against its anchor
     * point. Possible values are "left", "center" and "right". Defaults to the
     * same as the `align` option.
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the labels.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Vertical alignment of the label relative
     * to the plot line. Can be one of "top", "middle" or "bottom".
     */
    verticalAlign?: VerticalAlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal position relative the
     * alignment. Default varies by orientation.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical position of the text baseline
     * relative to the alignment. Default varies by orientation.
     */
    y?: number;
}
/**
 * (Highcharts, Highstock, Gantt) An array of lines stretching across the plot
 * area, marking a specific value on one of the axes.
 *
 * In styled mode, the plot lines are styled by the `.highcharts-plot-line`
 * class in addition to the `className` option.
 */
export interface ZAxisPlotLinesOptions {
    /**
     * (Highstock) Flag to decide if plotLine should be rendered across all
     * panes.
     */
    acrossPanes?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) A custom class name, in addition to the
     * default `highcharts-plot-line`, to apply to each individual line.
     */
    className?: string;
    /**
     * (Highcharts, Highstock, Gantt) The color of the line.
     */
    color?: ColorString;
    /**
     * (Highcharts, Highstock, Gantt) The dashing or dot style for the plot
     * line. For possible values see this overview.
     */
    dashStyle?: DashStyleValue;
    /**
     * (Highcharts, Highstock, Gantt) An object defining mouse events for the
     * plot line. Supported properties are `click`, `mouseover`, `mouseout`,
     * `mousemove`.
     */
    events?: ZAxisPlotLinesEventsOptions;
    /**
     * (Highcharts, Highstock, Gantt) An id used for identifying the plot line
     * in Axis.removePlotLine.
     */
    id?: string;
    /**
     * (Highcharts, Highstock, Gantt) Text labels for the plot bands
     */
    label?: ZAxisPlotLinesLabelOptions;
    /**
     * (Highcharts, Highstock, Gantt) The position of the line in axis units.
     */
    value?: number;
    /**
     * (Highcharts, Highstock, Gantt) The width or thickness of the plot line.
     */
    width?: number;
    /**
     * (Highcharts, Highstock, Gantt) The z index of the plot line within the
     * chart.
     */
    zIndex?: number;
}
/**
 * (Highstock) An optional scrollbar to display on the X axis in response to
 * limiting the minimum and maximum of the axis values.
 *
 * In styled mode, all the presentational options for the scrollbar are replaced
 * by the classes `.highcharts-scrollbar-thumb`, `.highcharts-scrollbar-arrow`,
 * `.highcharts-scrollbar-button`, `.highcharts-scrollbar-rifles` and
 * `.highcharts-scrollbar-track`.
 */
export interface ZAxisScrollbarOptions {
    /**
     * (Highstock) The background color of the scrollbar itself.
     */
    barBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the scrollbar's border.
     */
    barBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The border rounding radius of the bar.
     */
    barBorderRadius?: number;
    /**
     * (Highstock) The width of the bar's border.
     */
    barBorderWidth?: number;
    /**
     * (Highstock) The color of the small arrow inside the scrollbar buttons.
     */
    buttonArrowColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of scrollbar buttons.
     */
    buttonBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the border of the scrollbar buttons.
     */
    buttonBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The corner radius of the scrollbar buttons.
     */
    buttonBorderRadius?: number;
    /**
     * (Highstock) The border width of the scrollbar buttons.
     */
    buttonBorderWidth?: number;
    /**
     * (Highstock) Enable or disable the scrollbar.
     */
    enabled?: boolean;
    /**
     * (Highstock) The height of the scrollbar. The height also applies to the
     * width of the scroll arrows so that they are always squares. Defaults to
     * 20 for touch devices and 14 for mouse devices.
     */
    height?: number;
    /**
     * (Highstock) Whether to redraw the main chart as the scrollbar or the
     * navigator zoomed window is moved. Defaults to `true` for modern browsers
     * and `false` for legacy IE browsers as well as mobile devices.
     */
    liveRedraw?: boolean;
    /**
     * (Highstock) The margin between the scrollbar and its axis when the
     * scrollbar is applied directly to an axis.
     */
    margin?: number;
    /**
     * (Highstock) The minimum width of the scrollbar.
     */
    minWidth?: number;
    /**
     * (Highstock) The color of the small rifles in the middle of the scrollbar.
     */
    rifleColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) Whether to show or hide the scrollbar when the scrolled
     * content is zoomed out to it full extent.
     */
    showFull?: boolean;
    /**
     * (Highstock) The color of the track background.
     */
    trackBackgroundColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The color of the border of the scrollbar track.
     */
    trackBorderColor?: (ColorString|GradientColorObject|PatternObject);
    /**
     * (Highstock) The corner radius of the border of the scrollbar track.
     */
    trackBorderRadius?: number;
    /**
     * (Highstock) The width of the border of the scrollbar track.
     */
    trackBorderWidth?: number;
    /**
     * (Highstock) The z index of the scrollbar group.
     */
    zIndex?: number;
}
/**
 * (Highcharts) The axis title, showing next to the axis line.
 */
export interface ZAxisTitleOptions {
    /**
     * (Highcharts) Alignment of the title relative to the axis values. Possible
     * values are "low", "middle" or "high".
     */
    align?: AxisTitleAlignValue;
    /**
     * (Highcharts) The pixel distance between the axis labels or line and the
     * title. Defaults to 0 for horizontal axes, 10 for vertical
     */
    margin?: number;
    /**
     * (Highcharts) The distance of the axis title from the axis line. By
     * default, this distance is computed from the offset width of the labels,
     * the labels' distance from the axis and the title's margin. However when
     * the offset option is set, it overrides all this.
     */
    offset?: number;
    /**
     * (Highcharts) Defines how the title is repositioned according to the 3D
     * chart orientation.
     *
     * - `'offset'`: Maintain a fixed horizontal/vertical distance from the tick
     * marks, despite the chart orientation. This is the backwards compatible
     * behavior, and causes skewing of X and Z axes.
     *
     * - `'chart'`: Preserve 3D position relative to the chart. This looks nice,
     * but hard to read if the text isn't forward-facing.
     *
     * - `'flap'`: Rotated text along the axis to compensate for the chart
     * orientation. This tries to maintain text as legible as possible on all
     * orientations.
     *
     * - `'ortho'`: Rotated text along the axis direction so that the labels are
     * orthogonal to the axis. This is very similar to `'flap'`, but prevents
     * skewing the labels (X and Y scaling are still present).
     *
     * - `undefined`: Will use the config from `labels.position3d`
     */
    position3d?: ("chart"|"flap"|"offset"|"ortho"|null);
    /**
     * (Highcharts, Highstock, Gantt) Whether to reserve space for the title
     * when laying out the axis.
     */
    reserveSpace?: boolean;
    /**
     * (Highcharts) The rotation of the text in degrees. 0 is horizontal, 270 is
     * vertical reading from bottom to top.
     */
    rotation?: number;
    /**
     * (Highcharts) If enabled, the axis title will skewed to follow the
     * perspective.
     *
     * This will fix overlapping labels and titles, but texts become less
     * legible due to the distortion.
     *
     * The final appearance depends heavily on `title.position3d`.
     *
     * A `null` value will use the config from `labels.skew3d`.
     */
    skew3d?: (boolean|null);
    /**
     * (Highcharts) CSS styles for the title. If the title text is longer than
     * the axis length, it will wrap to multiple lines by default. This can be
     * customized by setting `textOverflow: 'ellipsis'`, by setting a specific
     * `width` or by setting `whiteSpace: 'nowrap'`.
     *
     * In styled mode, the stroke width is given in the `.highcharts-axis-title`
     * class.
     */
    style?: CSSObject;
    /**
     * (Highcharts) The actual text of the axis title. It can contain basic HTML
     * tags like `b`, `i` and `span` with style.
     */
    text?: (string|null);
    /**
     * (Highcharts) Alignment of the text, can be `"left"`, `"right"` or
     * `"center"`. Default alignment depends on the title.align:
     *
     * Horizontal axes:
     *
     * - for `align` = `"low"`, `textAlign` is set to `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"`, `textAlign` is set to `right`
     *
     * Vertical axes:
     *
     * - for `align` = `"low"` and `opposite` = `true`, `textAlign` is set to
     * `right`
     *
     * - for `align` = `"low"` and `opposite` = `false`, `textAlign` is set to
     * `left`
     *
     * - for `align` = `"middle"`, `textAlign` is set to `center`
     *
     * - for `align` = `"high"` and `opposite` = `true` `textAlign` is set to
     * `left`
     *
     * - for `align` = `"high"` and `opposite` = `false` `textAlign` is set to
     * `right`
     */
    textAlign?: AlignValue;
    /**
     * (Highcharts, Highstock, Gantt) Whether to use HTML to render the axis
     * title.
     */
    useHTML?: boolean;
    /**
     * (Highcharts, Highstock, Gantt) Horizontal pixel offset of the title
     * position.
     */
    x?: number;
    /**
     * (Highcharts, Highstock, Gantt) Vertical pixel offset of the title
     * position.
     */
    y?: number;
}
/**
 * An annotation class which serves as a container for items like labels or
 * shapes. Created items are positioned on the chart either by linking them to
 * existing points or created mock points
 */
export class Annotation {
    /**
     * An annotation class which serves as a container for items like labels or
     * shapes. Created items are positioned on the chart either by linking them
     * to existing points or created mock points
     *
     * @param chart
     *        a chart instance
     *
     * @param userOptions
     *        the options object
     */
    constructor(chart: Chart, userOptions: AnnotationsOptions);
    /**
     * The group svg element.
     */
    group: SVGElement;
    /**
     * The group svg element of the annotation's labels.
     */
    labelsGroup: SVGElement;
    /**
     * The options for the annotations.
     */
    options: AnnotationsOptions;
    /**
     * The group svg element of the annotation's shapes.
     */
    shapesGroup: SVGElement;
    /**
     * The user options for the annotations.
     */
    userOptions: AnnotationsOptions;
    /**
     * Updates an annotation.
     *
     * @param userOptions
     *        New user options for the annotation.
     */
    update(userOptions: Partial<AnnotationsOptions>): void;
}
/**
 * A control point class which is a connection between controllable transform
 * methods and a user actions.
 */
export class AnnotationControlPoint {
    /**
     * A control point class which is a connection between controllable
     * transform methods and a user actions.
     *
     * @param chart
     *        A chart instance.
     *
     * @param target
     *        A controllable instance which is a target for a control point.
     *
     * @param options
     *        An options object.
     *
     * @param index
     *        Point index.
     */
    constructor(chart: Chart, target: AnnotationControllable, options: AnnotationControlPointOptionsObject, index?: number);
    /**
     * Set the visibility of the control point.
     *
     * @param visible
     *        Visibility of the control point.
     */
    setVisibility(visible: boolean): void;
    /**
     * Update the control point.
     *
     * @param userOptions
     *        New options for the control point.
     */
    update(userOptions: Partial<AnnotationControlPointOptionsObject>): void;
}
/**
 * Create a new axis object. Called internally when instanciating a new chart or
 * adding axes by Highcharts.Chart#addAxis.
 *
 * A chart can have from 0 axes (pie chart) to multiples. In a normal, single
 * series cartesian chart, there is one X axis and one Y axis.
 *
 * The X axis or axes are referenced by Highcharts.Chart.xAxis, which is an
 * array of Axis objects. If there is only one axis, it can be referenced
 * through `chart.xAxis[0]`, and multiple axes have increasing indices. The same
 * pattern goes for Y axes.
 *
 * If you need to get the axes from a series object, use the `series.xAxis` and
 * `series.yAxis` properties. These are not arrays, as one series can only be
 * associated to one X and one Y axis.
 *
 * A third way to reference the axis programmatically is by `id`. Add an `id` in
 * the axis configuration options, and get the axis by Highcharts.Chart#get.
 *
 * Configuration options for the axes are given in options.xAxis and
 * options.yAxis.
 */
export class Axis {
    /**
     * Create a new axis object. Called internally when instanciating a new
     * chart or adding axes by Highcharts.Chart#addAxis.
     *
     * A chart can have from 0 axes (pie chart) to multiples. In a normal,
     * single series cartesian chart, there is one X axis and one Y axis.
     *
     * The X axis or axes are referenced by Highcharts.Chart.xAxis, which is an
     * array of Axis objects. If there is only one axis, it can be referenced
     * through `chart.xAxis[0]`, and multiple axes have increasing indices. The
     * same pattern goes for Y axes.
     *
     * If you need to get the axes from a series object, use the `series.xAxis`
     * and `series.yAxis` properties. These are not arrays, as one series can
     * only be associated to one X and one Y axis.
     *
     * A third way to reference the axis programmatically is by `id`. Add an
     * `id` in the axis configuration options, and get the axis by
     * Highcharts.Chart#get.
     *
     * Configuration options for the axes are given in options.xAxis and
     * options.yAxis.
     *
     * @param chart
     *        The Chart instance to apply the axis on.
     *
     * @param userOptions
     *        Axis options.
     */
    constructor(chart: Chart, userOptions: AxisOptions);
    /**
     * If categories are present for the axis, names are used instead of numbers
     * for that axis.
     *
     * Since Highcharts 3.0, categories can also be extracted by giving each
     * point a name and setting axis type to `category`. However, if you have
     * multiple series, best practice remains defining the `categories` array.
     */
    readonly categories: Array<string>;
    /**
     * The Chart that the axis belongs to.
     */
    chart: Chart;
    /**
     * The collection where the axis belongs, for example `xAxis`, `yAxis` or
     * `colorAxis`. Corresponds to properties on Chart, for example Chart.xAxis.
     */
    coll: string;
    /**
     * The processed crosshair options.
     */
    crosshair: (boolean|AxisCrosshairOptions);
    /**
     * Whether the axis is horizontal.
     */
    horiz?: boolean;
    /**
     * Whether the axis is the x-axis.
     */
    isXAxis?: boolean;
    /**
     * The maximum value of the axis. In a logarithmic axis, this is the
     * logarithm of the real value, and the real value can be obtained from
     * Axis#getExtremes.
     */
    max: (number|null);
    /**
     * The minimum value of the axis. In a logarithmic axis, this is the
     * logarithm of the real value, and the real value can be obtained from
     * Axis#getExtremes.
     */
    min: (number|null);
    /**
     * List of minor ticks mapped by position on the axis.
     */
    minorTicks: Dictionary<Tick>;
    /**
     * Current options for the axis after merge of defaults and user's options.
     */
    options: AxisOptions;
    /**
     * Whether the axis is reversed. Based on the `axis.reversed`, option, but
     * inverted charts have reversed xAxis by default.
     */
    reversed: boolean;
    /**
     * All series associated to the axis.
     */
    series: Array<Series>;
    /**
     * The side on which the axis is rendered. 0 is top, 1 is right, 2 is bottom
     * and 3 is left.
     */
    side: number;
    /**
     * Contains the current positions that are laid out on the axis. The
     * positions are numbers in terms of axis values. In a category axis they
     * are integers, in a datetime axis they are also integers, but designating
     * milliseconds.
     *
     * This property is read only - for modifying the tick positions, use the
     * `tickPositioner` callback or [axis.tickPositions(
     * https://api.highcharts.com/highcharts/xAxis.tickPositions) option
     * instead.
     */
    tickPositions?: AxisTickPositionsArray;
    /**
     * List of major ticks mapped by postition on axis.
     */
    ticks: Dictionary<Tick>;
    /**
     * User's options for this axis without defaults.
     */
    userOptions: AxisOptions;
    /**
     * Add a plot band after render time.
     *
     * @param options
     *        A configuration object for the plot band, as defined in
     *        xAxis.plotBands.
     *
     * @return The added plot band.
     */
    addPlotBand(options: AxisPlotBandsOptions): (PlotLineOrBand|undefined);
    /**
     * Add a plot line after render time.
     *
     * @param options
     *        A configuration object for the plot line, as defined in
     *        xAxis.plotLines.
     *
     * @return The added plot line.
     */
    addPlotLine(options: AxisPlotLinesOptions): (PlotLineOrBand|undefined);
    /**
     * Adds the title defined in axis.options.title.
     *
     * @param display
     *        Whether or not to display the title.
     */
    addTitle(display?: boolean): void;
    /**
     * The default label formatter. The context is a special config object for
     * the label. In apps, use the labels.formatter instead, except when a
     * modification is needed.
     *
     * @param this
     *        Formatter context of axis label.
     *
     * @return The formatted label content.
     */
    defaultLabelFormatter(this: (AxisLabelsFormatterContextObject<number>|AxisLabelsFormatterContextObject<string>)): string;
    /**
     * Internal function to draw a crosshair.
     *
     * @param e
     *        The event arguments from the modified pointer event, extended with
     *        `chartX` and `chartY`
     *
     * @param point
     *        The Point object if the crosshair snaps to points.
     *
     * @fires Highcharts.Axis#afterDrawCrosshair
     * @fires Highcharts.Axis#drawCrosshair
     */
    drawCrosshair(e?: PointerEventObject, point?: Point): void;
    /**
     * Get the current extremes for the axis.
     *
     * @return An object containing extremes information.
     */
    getExtremes(): ExtremesObject;
    /**
     * Internal function to et the tick positions of a linear axis to round
     * values like whole tens or every five.
     *
     * @param tickInterval
     *        The normalized tick interval.
     *
     * @param min
     *        Axis minimum.
     *
     * @param max
     *        Axis maximum.
     *
     * @return An array of axis values where ticks should be placed.
     */
    getLinearTickPositions(tickInterval: number, min: number, max: number): Array<number>;
    /**
     * Internal function to get the path for the axis line. Extended for polar
     * charts.
     *
     * @param lineWidth
     *        The line width in pixels.
     *
     * @return The SVG path definition in array form.
     */
    getLinePath(lineWidth: number): SVGPathArray;
    /**
     * Resolve the new minorTicks/minorTickInterval options into the legacy
     * loosely typed minorTickInterval option.
     */
    getMinorTickInterval(): ("auto"|number|null);
    /**
     * Internal function to return the minor tick positions. For logarithmic
     * axes, the same logic as for major ticks is reused.
     *
     * @return An array of axis values where ticks should be placed.
     */
    getMinorTickPositions(): Array<number>;
    /**
     * Internal function to create the SVG path definition for a plot band.
     *
     * @param from
     *        The axis value to start from.
     *
     * @param to
     *        The axis value to end on.
     *
     * @param options
     *        The plotBand or plotLine configuration object.
     *
     * @return The SVG path definition in array form.
     */
    getPlotBandPath(from: number, to: number, options: (AxisPlotBandsOptions|AxisPlotLinesOptions)): SVGPathArray;
    /**
     * Create the path for a plot line that goes from the given value on this
     * axis, across the plot to the opposite side. Also used internally for grid
     * lines and crosshairs.
     *
     * @param options
     *        Options for the path.
     *
     * @return The SVG path definition for the plot line.
     */
    getPlotLinePath(options: AxisPlotLinePathOptionsObject): (SVGPathArray|null);
    /**
     * Get the zero plane either based on zero or on the min or max value. Used
     * in bar and area plots.
     *
     * @param threshold
     *        The threshold in axis values.
     *
     * @return The translated threshold position in terms of pixels, and
     *         corrected to stay within the axis bounds.
     */
    getThreshold(threshold: number): (number|undefined);
    /**
     * Return true if the axis has associated data.
     *
     * @return True if the axis has associated visible series and those series
     *         have either valid data points or explicit `min` and `max`
     *         settings.
     */
    hasData(): boolean;
    /**
     * Hide the crosshair if visible.
     */
    hideCrosshair(): void;
    /**
     * Overrideable function to initialize the axis.
     *
     * @param chart
     *        The Chart instance to apply the axis on.
     *
     * @param userOptions
     *        Axis options.
     *
     * @fires Highcharts.Axis#afterInit
     * @fires Highcharts.Axis#init
     */
    init(chart: Chart, userOptions: AxisOptions): void;
    /**
     * Remove the axis from the chart.
     *
     * @param redraw
     *        Whether to redraw the chart following the remove.
     */
    remove(redraw?: boolean): void;
    /**
     * Remove a plot band by its id.
     *
     * @param id
     *        The plot band's `id` as given in the original configuration object
     *        or in the `addPlotBand` option.
     */
    removePlotBand(id: string): void;
    /**
     * Remove a plot line by its id.
     *
     * @param id
     *        The plot line's `id` as given in the original configuration object
     *        or in the `addPlotLine` option.
     */
    removePlotLine(id: string): void;
    /**
     * Render the axis line. Called internally when rendering and redrawing the
     * axis.
     */
    renderLine(): void;
    /**
     * Render a minor tick into the given position. If a minor tick already
     * exists in this position, move it.
     *
     * @param pos
     *        The position in axis values.
     */
    renderMinorTick(pos: number): void;
    /**
     * Render a major tick into the given position. If a tick already exists in
     * this position, move it.
     *
     * @param pos
     *        The position in axis values.
     *
     * @param i
     *        The tick index.
     */
    renderTick(pos: number, i: number): void;
    /**
     * Set new axis categories and optionally redraw.
     *
     * @param categories
     *        The new categories.
     *
     * @param redraw
     *        Whether to redraw the chart.
     */
    setCategories(categories: Array<string>, redraw?: boolean): void;
    /**
     * Set the minimum and maximum of the axes after render time. If the
     * `startOnTick` and `endOnTick` options are true, the minimum and maximum
     * values are rounded off to the nearest tick. To prevent this, these
     * options can be set to false before calling setExtremes. Also, setExtremes
     * will not allow a range lower than the `minRange` option, which by default
     * is the range of five points.
     *
     * @param newMin
     *        The new minimum value.
     *
     * @param newMax
     *        The new maximum value.
     *
     * @param redraw
     *        Whether to redraw the chart or wait for an explicit call to
     *        Highcharts.Chart#redraw
     *
     * @param animation
     *        Enable or modify animations.
     *
     * @param eventArguments
     *        Arguments to be accessed in event handler.
     *
     * @fires Highcharts.Axis#setExtremes
     */
    setExtremes(newMin?: number, newMax?: number, redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>), eventArguments?: any): void;
    /**
     * Update the axis title by options after render time.
     *
     * @param titleOptions
     *        The additional title options.
     *
     * @param redraw
     *        Whether to redraw the chart after setting the title.
     */
    setTitle(titleOptions: AxisTitleOptions, redraw?: boolean): void;
    /**
     * Translate a value in terms of axis units into pixels within the chart.
     *
     * @param value
     *        A value in terms of axis units.
     *
     * @param paneCoordinates
     *        Whether to return the pixel coordinate relative to the chart or
     *        just the axis/pane itself.
     *
     * @return Pixel position of the value on the chart or axis.
     */
    toPixels(value: number, paneCoordinates: boolean): number;
    /**
     * Translate a pixel position along the axis to a value in terms of axis
     * units.
     *
     * @param pixel
     *        The pixel value coordinate.
     *
     * @param paneCoordinates
     *        Whether the input pixel is relative to the chart or just the
     *        axis/pane itself.
     *
     * @return The axis value.
     */
    toValue(pixel: number, paneCoordinates?: boolean): number;
    /**
     * Update an axis object with a new set of options. The options are merged
     * with the existing options, so only new or altered options need to be
     * specified.
     *
     * @param options
     *        The new options that will be merged in with existing options on
     *        the axis.
     *
     * @param redraw
     *        Whether to redraw the chart after the axis is altered. If doing
     *        more operations on the chart, it is a good idea to set redraw to
     *        false and call Chart#redraw after.
     */
    update(options: AxisOptions, redraw?: boolean): void;
}
/**
 * The Chart class. The recommended constructor is Highcharts#chart.
 */
export class Chart {
    /**
     * The Chart class. The recommended constructor is Highcharts#chart.
     *
     * @param options
     *        The chart options structure.
     *
     * @param callback
     *        Function to run when the chart has loaded and and all external
     *        images are loaded. Defining a chart.events.load handler is
     *        equivalent.
     */
    constructor(options: Options, callback?: ChartCallbackFunction);
    /**
     * The Chart class. The recommended constructor is Highcharts#chart.
     *
     * @param renderTo
     *        The DOM element to render to, or its id.
     *
     * @param options
     *        The chart options structure.
     *
     * @param callback
     *        Function to run when the chart has loaded and and all external
     *        images are loaded. Defining a chart.events.load handler is
     *        equivalent.
     */
    constructor(renderTo: (string|HTMLDOMElement), options: Options, callback?: ChartCallbackFunction);
    /**
     * All the axes in the chart.
     */
    axes: Array<Axis>;
    /**
     * The current pixel height of the chart.
     */
    chartHeight: number;
    /**
     * The current pixel width of the chart.
     */
    chartWidth: number;
    /**
     * These collections (arrays) implement update() methods with support for
     * one-to-one option.
     */
    collectionsWithUpdate: any;
    /**
     * The containing HTML element of the chart. The container is dynamically
     * inserted into the element given as the `renderTo` parameter in the
     * Highcharts#chart constructor.
     */
    container: HTMLDOMElement;
    /**
     * The chart's credits label. The label has an `update` method that allows
     * setting new options as per the credits options set.
     */
    credits: SVGElement;
    /**
     * Contains the original hovered point.
     */
    hoverPoint: (Point|null);
    /**
     * Contains all hovered points.
     */
    hoverPoints: (Array<Point>|null);
    /**
     * Contains the original hovered series.
     */
    hoverSeries: (Series|null);
    /**
     * Index position of the chart in the Highcharts#charts property.
     */
    readonly index: number;
    /**
     * The flag is set to `true` if a series of the chart is inverted.
     */
    inverted?: boolean;
    /**
     * The overview of the chart's series.
     */
    legend: Legend;
    /**
     * Callback function to override the default function that formats all the
     * numbers in the chart. Returns a string with the formatted number.
     */
    numberFormatter: NumberFormatterCallbackFunction;
    /**
     * The options structure for the chart after merging #defaultOptions and
     * #userOptions. It contains members for the sub elements like series,
     * legend, tooltip etc.
     */
    options: Options;
    /**
     * The current height of the plot area in pixels.
     */
    plotHeight: number;
    /**
     * The current left position of the plot area in pixels.
     */
    plotLeft: number;
    /**
     * The current top position of the plot area in pixels.
     */
    plotTop: number;
    /**
     * The current width of the plot area in pixels.
     */
    plotWidth: number;
    /**
     * The Pointer that keeps track of mouse and touch interaction.
     */
    pointer: Pointer;
    /**
     * These properties cause isDirtyBox to be set to true when updating. Can be
     * extended from plugins.
     */
    propsRequireDirtyBox: any;
    /**
     * These properties require a full reflow of chart elements, best
     * implemented through running `Chart.setSize` internally (#8190).
     */
    propsRequireReflow: any[];
    /**
     * These properties cause all series to be updated when updating. Can be
     * extended from plugins.
     */
    propsRequireUpdateSeries: any;
    /**
     * The renderer instance of the chart. Each chart instance has only one
     * associated renderer.
     */
    renderer: SVGRenderer;
    /**
     * All the current series in the chart.
     */
    series: Array<Series>;
    /**
     * Whether the chart is in styled mode, meaning all presentatinoal
     * attributes are avoided.
     */
    styledMode: boolean;
    /**
     * The chart subtitle. The subtitle has an `update` method that allows
     * modifying the options directly or indirectly via `chart.update`.
     */
    subtitle: SubtitleObject;
    /**
     * The `Time` object associated with the chart. Since v6.0.5, time settings
     * can be applied individually for each chart. If no individual settings
     * apply, the `Time` object is shared by all instances.
     */
    time: Time;
    /**
     * The chart title. The title has an `update` method that allows modifying
     * the options directly or indirectly via `chart.update`.
     */
    title: TitleObject;
    /**
     * Tooltip object for points of series.
     */
    tooltip: Tooltip;
    /**
     * The original options given to the constructor or a chart factory like
     * Highcharts.chart and Highcharts.stockChart.
     */
    userOptions: Options;
    /**
     * A collection of the X axes in the chart.
     */
    xAxis: Array<Axis>;
    /**
     * A collection of the Y axes in the chart.
     */
    yAxis: Array<Axis>;
    /**
     * Add an axis to the chart after render time. Note that this method should
     * never be used when adding data synchronously at chart render time, as it
     * adds expense to the calculations and rendering. When adding data at the
     * same time as the chart is initialized, add the axis as a configuration
     * option instead.
     *
     * @param options
     *        The axis options.
     *
     * @param isX
     *        Whether it is an X axis or a value axis.
     *
     * @param redraw
     *        Whether to redraw the chart after adding.
     *
     * @param animation
     *        Whether and how to apply animation in the redraw.
     *
     * @return The newly generated Axis object.
     */
    addAxis(options: AxisOptions, isX?: boolean, redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>)): Axis;
    /**
     * Add a color axis to the chart after render time. Note that this method
     * should never be used when adding data synchronously at chart render time,
     * as it adds expense to the calculations and rendering. When adding data at
     * the same time as the chart is initialized, add the axis as a
     * configuration option instead.
     *
     * @param options
     *        The axis options.
     *
     * @param redraw
     *        Whether to redraw the chart after adding.
     *
     * @param animation
     *        Whether and how to apply animation in the redraw.
     *
     * @return The newly generated Axis object.
     */
    addColorAxis(options: ColorAxisOptions, redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>)): ColorAxis;
    /**
     * Set a new credits label for the chart.
     *
     * @param credits
     *        A configuration object for the new credits.
     */
    addCredits(credits?: CreditsOptions): void;
    /**
     * Add a series to the chart after render time. Note that this method should
     * never be used when adding data synchronously at chart render time, as it
     * adds expense to the calculations and rendering. When adding data at the
     * same time as the chart is initialized, add the series as a configuration
     * option instead. With multiple axes, the `offset` is dynamically adjusted.
     *
     * @param options
     *        The config options for the series.
     *
     * @param redraw
     *        Whether to redraw the chart after adding.
     *
     * @param animation
     *        Whether to apply animation, and optionally animation
     *        configuration.
     *
     * @return The newly created series object.
     *
     * @fires Highcharts.Chart#addSeries
     * @fires Highcharts.Chart#afterAddSeries
     */
    addSeries(options: SeriesOptionsType, redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>)): Series;
    /**
     * Remove the chart and purge memory. This method is called internally
     * before adding a second chart into the same container, as well as on
     * window unload to prevent leaks.
     *
     * @fires Highcharts.Chart#destroy
     */
    destroy(): void;
    /**
     * Get an axis, series or point object by `id` as given in the configuration
     * options. Returns `undefined` if no item is found.
     *
     * @param id
     *        The id as given in the configuration options.
     *
     * @return The retrieved item.
     */
    get(id: string): (Axis|Point|Series|undefined);
    /**
     * Returns an array of all currently selected points in the chart. Points
     * can be selected by clicking or programmatically by the
     * Highcharts.Point#select function.
     *
     * @return The currently selected points.
     */
    getSelectedPoints(): Array<Point>;
    /**
     * Returns an array of all currently selected series in the chart. Series
     * can be selected either programmatically by the Highcharts.Series#select
     * function or by checking the checkbox next to the legend item if
     * series.showCheckBox is true.
     *
     * @return The currently selected series.
     */
    getSelectedSeries(): Array<Series>;
    /**
     * Hide the loading layer.
     */
    hideLoading(): void;
    /**
     * Overridable function that initializes the chart. The constructor's
     * arguments are passed on directly.
     *
     * @param userOptions
     *        Custom options.
     *
     * @param callback
     *        Function to run when the chart has loaded and and all external
     *        images are loaded.
     *
     * @fires Highcharts.Chart#init
     * @fires Highcharts.Chart#afterInit
     */
    init(userOptions: Options, callback?: Function): void;
    /**
     * Check whether a given point is within the plot area.
     *
     * @param plotX
     *        Pixel x relative to the plot area.
     *
     * @param plotY
     *        Pixel y relative to the plot area.
     *
     * @param inverted
     *        Whether the chart is inverted.
     *
     * @return Returns true if the given point is inside the plot area.
     */
    isInsidePlot(plotX: number, plotY: number, inverted?: boolean): boolean;
    /**
     * Redraw the chart after changes have been done to the data, axis extremes
     * chart size or chart elements. All methods for updating axes, series or
     * points have a parameter for redrawing the chart. This is `true` by
     * default. But in many cases you want to do more than one operation on the
     * chart before redrawing, for example add a number of points. In those
     * cases it is a waste of resources to redraw the chart for each new point
     * added. So you add the points and call `chart.redraw()` after.
     *
     * @param animation
     *        If or how to apply animation to the redraw.
     *
     * @fires Highcharts.Chart#afterSetExtremes
     * @fires Highcharts.Chart#beforeRedraw
     * @fires Highcharts.Chart#predraw
     * @fires Highcharts.Chart#redraw
     * @fires Highcharts.Chart#render
     * @fires Highcharts.Chart#updatedData
     */
    redraw(animation?: (boolean|Partial<AnimationOptionsObject>)): void;
    /**
     * Reflows the chart to its container. By default, the chart reflows
     * automatically to its container following a `window.resize` event, as per
     * the chart.reflow option. However, there are no reliable events for div
     * resize, so if the container is resized without a window resize event,
     * this must be called explicitly.
     *
     * @param e
     *        Event arguments. Used primarily when the function is called
     *        internally as a response to window resize.
     */
    reflow(e?: Event): void;
    /**
     * Set the caption options. This can also be done from Chart#update.
     *
     * @param options
     *        New caption options. The caption text itself is set by the
     *        `options.text` property.
     */
    setCaption(options: CaptionOptions): void;
    /**
     * Set the chart container's class name, in addition to
     * `highcharts-container`.
     *
     * @param className
     *        The additional class name.
     */
    setClassName(className?: string): void;
    /**
     * Resize the chart to a given width and height. In order to set the width
     * only, the height argument may be skipped. To set the height only, pass
     * `undefined` for the width.
     *
     * @param width
     *        The new pixel width of the chart. Since v4.2.6, the argument can
     *        be `undefined` in order to preserve the current value (when
     *        setting height only), or `null` to adapt to the width of the
     *        containing element.
     *
     * @param height
     *        The new pixel height of the chart. Since v4.2.6, the argument can
     *        be `undefined` in order to preserve the current value, or `null`
     *        in order to adapt to the height of the containing element.
     *
     * @param animation
     *        Whether and how to apply animation.
     *
     * @fires Highcharts.Chart#endResize
     * @fires Highcharts.Chart#resize
     */
    setSize(width?: (number|null), height?: (number|null), animation?: (boolean|Partial<AnimationOptionsObject>)): void;
    /**
     * Shortcut to set the subtitle options. This can also be done from
     * Chart#update or Chart#setTitle.
     *
     * @param options
     *        New subtitle options. The subtitle text itself is set by the
     *        `options.text` property.
     */
    setSubtitle(options: SubtitleOptions): void;
    /**
     * Set a new title or subtitle for the chart.
     *
     * @param titleOptions
     *        New title options. The title text itself is set by the
     *        `titleOptions.text` property.
     *
     * @param subtitleOptions
     *        New subtitle options. The subtitle text itself is set by the
     *        `subtitleOptions.text` property.
     *
     * @param redraw
     *        Whether to redraw the chart or wait for a later call to
     *        `chart.redraw()`.
     */
    setTitle(titleOptions?: TitleOptions, subtitleOptions?: SubtitleOptions, redraw?: boolean): void;
    /**
     * Dim the chart and show a loading text or symbol. Options for the loading
     * screen are defined in the loading options.
     *
     * @param str
     *        An optional text to show in the loading label instead of the
     *        default one. The default text is set in lang.loading.
     */
    showLoading(str?: string): void;
    /**
     * Display the zoom button, so users can reset zoom to the default view
     * settings.
     *
     * @fires Highcharts.Chart#afterShowResetZoom
     * @fires Highcharts.Chart#beforeShowResetZoom
     */
    showResetZoom(): void;
    /**
     * A generic function to update any element of the chart. Elements can be
     * enabled and disabled, moved, re-styled, re-formatted etc.
     *
     * A special case is configuration objects that take arrays, for example
     * xAxis, yAxis or series. For these collections, an `id` option is used to
     * map the new option set to an existing object. If an existing object of
     * the same id is not found, the corresponding item is updated. So for
     * example, running `chart.update` with a series item without an id, will
     * cause the existing chart's series with the same index in the series array
     * to be updated. When the `oneToOne` parameter is true, `chart.update` will
     * also take care of adding and removing items from the collection. Read
     * more under the parameter description below.
     *
     * Note that when changing series data, `chart.update` may mutate the passed
     * data options.
     *
     * See also the responsive option set. Switching between `responsive.rules`
     * basically runs `chart.update` under the hood.
     *
     * @param options
     *        A configuration object for the new chart options.
     *
     * @param redraw
     *        Whether to redraw the chart.
     *
     * @param oneToOne
     *        When `true`, the `series`, `xAxis`, `yAxis` and `annotations`
     *        collections will be updated one to one, and items will be either
     *        added or removed to match the new updated options. For example, if
     *        the chart has two series and we call `chart.update` with a
     *        configuration containing three series, one will be added. If we
     *        call `chart.update` with one series, one will be removed. Setting
     *        an empty `series` array will remove all series, but leaving out
     *        the`series` property will leave all series untouched. If the
     *        series have id's, the new series options will be matched by id,
     *        and the remaining ones removed.
     *
     * @param animation
     *        Whether to apply animation, and optionally animation
     *        configuration.
     *
     * @fires Highcharts.Chart#update
     * @fires Highcharts.Chart#afterUpdate
     */
    update(options: Options, redraw?: boolean, oneToOne?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>)): void;
    /**
     * Zoom the chart out after a user has zoomed in. See also Axis.setExtremes.
     *
     * @fires Highcharts.Chart#selection
     */
    zoomOut(): void;
}
/**
 * Handle color operations. Some object methods are chainable.
 */
export class Color {
    /**
     * Creates a color instance out of a color string or object.
     *
     * @param input
     *        The input color in either rbga or hex format.
     *
     * @return Color instance.
     */
    static parse(input: ColorType): Color;
    /**
     * Handle color operations. Some object methods are chainable.
     *
     * @param input
     *        The input color in either rbga or hex format
     */
    constructor(input: ColorType);
    /**
     * Brighten the color instance.
     *
     * @param alpha
     *        The alpha value.
     *
     * @return This color with modifications.
     */
    brighten(alpha: number): Color;
    /**
     * Return the color or gradient stops in the specified format
     *
     * @param format
     *        Possible values are 'a', 'rgb', 'rgba' (default).
     *
     * @return This color as a string or gradient stops.
     */
    get(format?: string): ColorType;
    /**
     * Set the color's opacity to a given alpha value.
     *
     * @param alpha
     *        Opacity between 0 and 1.
     *
     * @return Color with modifications.
     */
    setOpacity(alpha: number): Color;
    /**
     * Return an intermediate color between two colors.
     *
     * @param to
     *        The color object to tween to.
     *
     * @param pos
     *        The intermediate position, where 0 is the from color (current
     *        color item), and 1 is the `to` color.
     *
     * @return The intermediate color in rgba notation.
     */
    tweenTo(to: Color, pos: number): ColorString;
}
/**
 * The ColorAxis object for inclusion in gradient legends.
 */
export class ColorAxis {
    /**
     * The ColorAxis object for inclusion in gradient legends.
     *
     * @param chart
     *        The related chart of the color axis.
     *
     * @param userOptions
     *        The color axis options for initialization.
     */
    constructor(chart: Chart, userOptions: ColorAxisOptions);
}
/**
 * The overview of the chart's series. The legend object is instanciated
 * internally in the chart constructor, and is available from the `chart.legend`
 * property. Each chart has only one legend.
 */
export class Legend {
    /**
     * The overview of the chart's series. The legend object is instanciated
     * internally in the chart constructor, and is available from the
     * `chart.legend` property. Each chart has only one legend.
     *
     * @param chart
     *        The chart instance.
     *
     * @param options
     *        Legend options.
     */
    constructor(chart: Chart, options: LegendOptions);
    /**
     * All items for the legend, which is an array of series for most series and
     * an array of points for pie series and its derivatives.
     */
    readonly allItems: Array<(Point|Series)>;
    /**
     * SVG element of the legend box.
     */
    readonly box: SVGElement;
    /**
     * Chart of this legend.
     */
    readonly chart: Chart;
    /**
     * SVG group of the legend.
     */
    readonly group: SVGElement;
    /**
     * Legend options.
     */
    readonly options: LegendOptions;
    /**
     * SVG element of the legend title.
     */
    readonly title: SVGElement;
    /**
     * Set the legend item text.
     *
     * @param item
     *        The item for which to update the text in the legend.
     */
    setText(item: (Point|Series)): void;
    /**
     * Update the legend with new options. Equivalent to running `chart.update`
     * with a legend configuration option.
     *
     * @param options
     *        Legend options.
     *
     * @param redraw
     *        Whether to redraw the chart after the axis is altered. If doing
     *        more operations on the chart, it is a good idea to set redraw to
     *        false and call Chart#redraw after. Whether to redraw the chart.
     *
     * @fires Highcharts.Legends#afterUpdate
     */
    update(options: LegendOptions, redraw?: boolean): void;
}
/**
 * The object wrapper for plot lines and plot bands
 */
export class PlotLineOrBand {
    /**
     * The object wrapper for plot lines and plot bands
     */
    constructor(axis: Axis, options?: (AxisPlotBandsOptions|AxisPlotLinesOptions));
    /**
     * SVG element of the label.
     */
    label: SVGElement;
    /**
     * SVG element of the plot line or band.
     */
    svgElement: SVGElement;
    /**
     * Remove the plot line or band.
     */
    destroy(): void;
}
/**
 * The Point object. The point objects are generated from the `series.data`
 * configuration objects or raw numbers. They can be accessed from the
 * `Series.points` array. Other ways to instantiate points are through
 * Highcharts.Series#addPoint or Highcharts.Series#setData.
 */
export class Point {
    /**
     * For categorized axes this property holds the category name for the point.
     * For other axes it holds the X value.
     */
    category: string;
    /**
     * The point's current color.
     */
    color?: (ColorString|GradientColorObject|PatternObject);
    /**
     * The point's current color index, used in styled mode instead of `color`.
     * The color index is inserted in class names used for styling.
     */
    colorIndex: number;
    /**
     * (Highstock) Highstock only. If a point object is created by data
     * grouping, it doesn't reflect actual points in the raw data. In this case,
     * the `dataGroup` property holds information that points back to the raw
     * data.
     *
     * - `dataGroup.start` is the index of the first raw data point in the
     * group.
     *
     * - `dataGroup.length` is the amount of points in the group.
     */
    dataGroup?: DataGroupingInfoObject;
    /**
     * Contains the point's index in the `Series.points` array.
     */
    readonly index: number;
    /**
     * The name of the point. The name can be given as the first position of the
     * point configuration array, or as a `name` property in the configuration:
     */
    name: string;
    /**
     * The point's options as applied in the initial configuration, or extended
     * through `Point.update`.
     *
     * In TypeScript you have to extend `PointOptionsObject` via an additional
     * interface to allow custom data options: (see online documentation for
     * example)
     */
    options: PointOptionsObject;
    /**
     * The percentage for points in a stacked series or pies.
     */
    percentage?: number;
    /**
     * Whether the point is selected or not.
     */
    selected: boolean;
    /**
     * The series object associated with the point.
     */
    series: Series;
    /**
     * Pie series only. Whether to display a slice offset from the center.
     */
    sliced?: boolean;
    /**
     * The total of values in either a stack for stacked series, or a pie in a
     * pie series.
     */
    total?: number;
    /**
     * For certain series types, like pie charts, where individual points can be
     * shown or hidden.
     */
    visible: boolean;
    /**
     * The x value of the point.
     */
    x: number;
    /**
     * The y value of the point.
     */
    y?: number;
    /**
     * Get the CSS class names for individual points. Used internally where the
     * returned value is set on every point.
     *
     * @return The class names.
     */
    getClassName(): string;
    /**
     * Return the configuration hash needed for the data label and tooltip
     * formatters.
     *
     * @return Abstract object used in formatters and formats.
     */
    getLabelConfig(): PointLabelObject;
    /**
     * In a series with `zones`, return the zone that the point belongs to.
     *
     * @return The zone item.
     */
    getZone(): SeriesZonesOptionsObject;
    /**
     * Get the path definition for the halo, which is usually a shadow-like
     * circle around the currently hovered point.
     *
     * @param size
     *        The radius of the circular halo.
     *
     * @return The path definition.
     */
    haloPath(size: number): SVGPathArray;
    /**
     * Initialize the point. Called internally based on the `series.data`
     * option.
     *
     * @param series
     *        The series object containing this point.
     *
     * @param options
     *        The data in either number, array or object format.
     *
     * @param x
     *        Optionally, the X value of the point.
     *
     * @return The Point instance.
     *
     * @fires Highcharts.Point#afterInit
     */
    init(series: Series, options: PointOptionsType, x?: number): Point;
    /**
     * Runs on mouse out from the point. Called internally from mouse and touch
     * events.
     *
     * @fires Highcharts.Point#mouseOut
     */
    onMouseOut(): void;
    /**
     * Runs on mouse over the point. Called internally from mouse and touch
     * events.
     *
     * @param e
     *        The event arguments.
     */
    onMouseOver(e?: PointerEventObject): void;
    /**
     * Transform number or array configs into objects. Also called for object
     * configs. Used internally to unify the different configuration formats for
     * points. For example, a simple number `10` in a line series will be
     * transformed to `{ y: 10 }`, and an array config like `[1, 10]` in a
     * scatter series will be transformed to `{ x: 1, y: 10 }`.
     *
     * @param options
     *        The input option.
     *
     * @return Transformed options.
     */
    optionsToObject(options: PointOptionsType): Dictionary<any>;
    /**
     * Remove a point and optionally redraw the series and if necessary the axes
     *
     * @param redraw
     *        Whether to redraw the chart or wait for an explicit call. When
     *        doing more operations on the chart, for example running
     *        `point.remove()` in a loop, it is best practice to set `redraw` to
     *        false and call `chart.redraw()` after.
     *
     * @param animation
     *        Whether to apply animation, and optionally animation
     *        configuration.
     */
    remove(redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>)): void;
    /**
     * Toggle the selection status of a point.
     *
     * @param selected
     *        When `true`, the point is selected. When `false`, the point is
     *        unselected. When `null` or `undefined`, the selection state is
     *        toggled.
     *
     * @param accumulate
     *        When `true`, the selection is added to other selected points. When
     *        `false`, other selected points are deselected. Internally in
     *        Highcharts, when allowPointSelect is `true`, selected points are
     *        accumulated on Control, Shift or Cmd clicking the point.
     *
     * @fires Highcharts.Point#select
     * @fires Highcharts.Point#unselect
     */
    select(selected?: boolean, accumulate?: boolean): void;
    /**
     * Set a value in an object, on the property defined by key. The key
     * supports nested properties using dot notation. The function modifies the
     * input object and does not make a copy.
     *
     * @param object
     *        The object to set the value on.
     *
     * @param value
     *        The value to set.
     *
     * @param key
     *        Key to the property to set.
     *
     * @return The modified object.
     */
    setNestedProperty<T>(object: T, value: any, key: string): T;
    /**
     * Set the point's state.
     *
     * @param state
     *        The new state, can be one of `'hover'`, `'select'`, `'inactive'`,
     *        or `''` (an empty string), `'normal'` or `undefined` to set to
     *        normal state.
     *
     * @param move
     *        State for animation.
     *
     * @fires Highcharts.Point#afterSetState
     */
    setState(state?: (""|PointStateValue), move?: boolean): void;
    /**
     * Extendable method for formatting each point's tooltip line.
     *
     * @param pointFormat
     *        The point format.
     *
     * @return A string to be concatenated in to the common tooltip text.
     */
    tooltipFormatter(pointFormat: string): string;
    /**
     * Update point with new options (typically x/y data) and optionally redraw
     * the series.
     *
     * @param options
     *        The point options. Point options are handled as described under
     *        the `series.type.data` item for each series type. For example for
     *        a line series, if options is a single number, the point will be
     *        given that number as the marin y value. If it is an array, it will
     *        be interpreted as x and y values respectively. If it is an object,
     *        advanced options are applied.
     *
     * @param redraw
     *        Whether to redraw the chart after the point is updated. If doing
     *        more operations on the chart, it is best practice to set `redraw`
     *        to false and call `chart.redraw()` after.
     *
     * @param animation
     *        Whether to apply animation, and optionally animation
     *        configuration.
     *
     * @fires Highcharts.Point#update
     */
    update(options: PointOptionsType, redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>)): void;
}
/**
 * The mouse and touch tracker object. Each Chart item has one assosiated
 * Pointer item that can be accessed from the Chart.pointer property.
 */
export class Pointer {
    /**
     * The mouse and touch tracker object. Each Chart item has one assosiated
     * Pointer item that can be accessed from the Chart.pointer property.
     *
     * @param chart
     *        The chart instance.
     *
     * @param options
     *        The root options object. The pointer uses options from the chart
     *        and tooltip structures.
     */
    constructor(chart: Chart, options: Options);
    /**
     * Destroys the Pointer object and disconnects DOM events.
     */
    destroy(): void;
    /**
     * Finds the closest point to a set of coordinates, using the k-d-tree
     * algorithm.
     *
     * @param series
     *        All the series to search in.
     *
     * @param shared
     *        Whether it is a shared tooltip or not.
     *
     * @param e
     *        The pointer event object, containing chart coordinates of the
     *        pointer.
     *
     * @return The point closest to given coordinates.
     */
    findNearestKDPoint(series: Array<Series>, shared: (boolean|undefined), e: PointerEventObject): (Point|undefined);
    /**
     * Return the cached chartPosition if it is available on the Pointer,
     * otherwise find it. Running offset is quite expensive, so it should be
     * avoided when we know the chart hasn't moved.
     *
     * @return The offset of the chart container within the page
     */
    getChartPosition(): OffsetObject;
    /**
     * Get the click position in terms of axis values.
     *
     * @param e
     *        Pointer event, extended with `chartX` and `chartY` properties.
     */
    getCoordinates(e: PointerEventObject): PointerAxisCoordinatesObject;
    /**
     * Utility to detect whether an element has, or has a parent with, a
     * specificclass name. Used on detection of tracker objects and on deciding
     * whether hovering the tooltip should cause the active series to mouse out.
     *
     * @param element
     *        The element to investigate.
     *
     * @param className
     *        The class name to look for.
     *
     * @return True if either the element or one of its parents has the given
     *         class name.
     */
    inClass(element: (HTMLDOMElement|SVGDOMElement), className: string): (boolean|undefined);
    /**
     * Takes a browser event object and extends it with custom Highcharts
     * properties `chartX` and `chartY` in order to work on the internal
     * coordinate system.
     *
     * @param e
     *        Event object in standard browsers.
     *
     * @param chartPosition
     *        Additional chart offset.
     *
     * @return A browser event with extended properties `chartX` and `chartY`.
     */
    normalize(e: (MouseEvent|PointerEvent|TouchEvent), chartPosition?: OffsetObject): PointerEventObject;
    /**
     * Reset the tracking by hiding the tooltip, the hover series state and the
     * hover point
     *
     * @param allowMove
     *        Instead of destroying the tooltip altogether, allow moving it if
     *        possible.
     */
    reset(allowMove?: boolean, delay?: number): void;
}
export class Series {
    /**
     * This is the base series prototype that all other series types inherit
     * from. A new series is initialized either through the series option
     * structure, or after the chart is initialized, through
     * Highcharts.Chart#addSeries.
     *
     * The object can be accessed in a number of ways. All series and point
     * event handlers give a reference to the `series` object. The chart object
     * has a series property that is a collection of all the chart's series. The
     * point objects and axis objects also have the same reference.
     *
     * Another way to reference the series programmatically is by `id`. Add an
     * id in the series configuration options, and get the series object by
     * Highcharts.Chart#get.
     *
     * Configuration options for the series are given in three levels. Options
     * for all series in a chart are given in the plotOptions.series object.
     * Then options for all series of a specific type are given in the
     * plotOptions of that type, for example `plotOptions.line`. Next, options
     * for one single series are given in the series array, or as arguments to
     * `chart.addSeries`.
     *
     * The data in the series is stored in various arrays.
     *
     * - First, `series.options.data` contains all the original config options
     * for each point whether added by options or methods like
     * `series.addPoint`.
     *
     * - Next, `series.data` contains those values converted to points, but in
     * case the series data length exceeds the `cropThreshold`, or if the data
     * is grouped, `series.data` doesn't contain all the points. It only
     * contains the points that have been created on demand.
     *
     * - Then there's `series.points` that contains all currently visible point
     * objects. In case of cropping, the cropped-away points are not part of
     * this array. The `series.points` array starts at `series.cropStart`
     * compared to `series.data` and `series.options.data`. If however the
     * series data is grouped, these can't be correlated one to one.
     *
     * - `series.xData` and `series.processedXData` contain clean x values,
     * equivalent to `series.data` and `series.points`.
     *
     * - `series.yData` and `series.processedYData` contain clean y values,
     * equivalent to `series.data` and `series.points`.
     *
     * @param chart
     *        The chart instance.
     *
     * @param options
     *        The series options.
     */
    constructor(chart: Chart, options: (object|SeriesOptionsType));
    /**
     * SVG element of area-based charts. Can be used for styling purposes. If
     * zones are configured, this element will be hidden and replaced by
     * multiple zone areas, accessible via `series['zone-area-x']` (where x is a
     * number, starting with 0).
     */
    area?: SVGElement;
    /**
     * Read only. The chart that the series belongs to.
     */
    chart: Chart;
    /**
     * Read only. An array containing those values converted to points. In case
     * the series data length exceeds the `cropThreshold`, or if the data is
     * grouped, `series.data` doesn't contain all the points. Also, in case a
     * series is hidden, the `data` array may be empty. To access raw values,
     * `series.options.data` will always be up to date. `Series.data` only
     * contains the points that have been created on demand. To modify the data,
     * use Highcharts.Series#setData or Highcharts.Point#update.
     */
    data: Array<Point>;
    /**
     * Contains the maximum value of the series' data point. Some series types
     * like `networkgraph` do not support this property as they lack a
     * `y`-value.
     */
    readonly dataMax?: number;
    /**
     * Contains the minimum value of the series' data point. Some series types
     * like `networkgraph` do not support this property as they lack a
     * `y`-value.
     */
    readonly dataMin?: number;
    /**
     * SVG element of line-based charts. Can be used for styling purposes. If
     * zones are configured, this element will be hidden and replaced by
     * multiple zone lines, accessible via `series['zone-graph-x']` (where x is
     * a number, starting with 0).
     */
    graph?: SVGElement;
    /**
     * Contains the series' index in the `Chart.series` array.
     */
    readonly index: number;
    /**
     * The series name as given in the options. Defaults to "Series {n}".
     */
    name: string;
    /**
     * Read only. The series' current options. To update, use Series#update.
     */
    options: SeriesOptionsType;
    /**
     * An array containing all currently visible point objects. In case of
     * cropping, the cropped-away points are not part of this array. The
     * `series.points` array starts at `series.cropStart` compared to
     * `series.data` and `series.options.data`. If however the series data is
     * grouped, these can't be correlated one to one. To modify the data, use
     * Highcharts.Series#setData or Highcharts.Point#update.
     */
    points: Array<Point>;
    /**
     * Read only. The series' selected state as set by Highcharts.Series#select.
     */
    selected: boolean;
    /**
     * Read only. The series' type, like "line", "area", "column" etc. The type
     * in the series options anc can be altered using Series#update.
     */
    type: string;
    /**
     * Contains series options by the user without defaults.
     */
    userOptions: SeriesOptionsType;
    /**
     * Read only. The series' visibility state as set by Series#show,
     * Series#hide, or in the initial configuration.
     */
    visible: boolean;
    /**
     * Read only. The unique xAxis object associated with the series.
     */
    xAxis: Axis;
    /**
     * Read only. The unique yAxis object associated with the series.
     */
    yAxis: Axis;
    /**
     * Add a point to the series after render time. The point can be added at
     * the end, or by giving it an X value, to the start or in the middle of the
     * series.
     *
     * @param options
     *        The point options. If options is a single number, a point with
     *        that y value is appended to the series. If it is an array, it will
     *        be interpreted as x and y values respectively. If it is an object,
     *        advanced options as outlined under `series.data` are applied.
     *
     * @param redraw
     *        Whether to redraw the chart after the point is added. When adding
     *        more than one point, it is highly recommended that the redraw
     *        option be set to false, and instead Chart#redraw is explicitly
     *        called after the adding of points is finished. Otherwise, the
     *        chart will redraw after adding each point.
     *
     * @param shift
     *        If true, a point is shifted off the start of the series as one is
     *        appended to the end.
     *
     * @param animation
     *        Whether to apply animation, and optionally animation
     *        configuration.
     *
     * @param withEvent
     *        Used internally, whether to fire the series `addPoint` event.
     *
     * @fires Highcharts.Series#addPoint
     */
    addPoint(options: PointOptionsType, redraw?: boolean, shift?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>), withEvent?: boolean): void;
    /**
     * Animate in the series. Called internally twice. First with the `init`
     * parameter set to true, which sets up the initial state of the animation.
     * Then when ready, it is called with the `init` parameter undefined, in
     * order to perform the actual animation. After the second run, the function
     * is removed.
     *
     * @param init
     *        Initialize the animation.
     */
    animate(init?: boolean): void;
    /**
     * Draw the graph. Called internally when rendering line-like series types.
     * The first time it generates the `series.graph` item and optionally other
     * series-wide items like `series.area` for area charts. On subsequent calls
     * these items are updated with new positions and attributes.
     */
    drawGraph(): void;
    /**
     * Draw the markers for line-like series types, and columns or other
     * graphical representation for Point objects for other series types. The
     * resulting element is typically stored as Point.graphic, and is created on
     * the first call and updated and moved on subsequent calls.
     */
    drawPoints(): void;
    /**
     * Return series name in "Series {Number}" format or the one defined by a
     * user. This method can be simply overridden as series name format can vary
     * (e.g. technical indicators).
     *
     * @return The series name.
     */
    getName(): string;
    /**
     * Get the translation and scale for the plot area of this series.
     */
    getPlotBox(): SeriesPlotBoxObject;
    /**
     * Return the series points with null points filtered out.
     *
     * @param points
     *        The points to inspect, defaults to Series.points.
     *
     * @param insideOnly
     *        Whether to inspect only the points that are inside the visible
     *        view.
     *
     * @param allowNull
     *        Whether to allow null points to pass as valid points.
     *
     * @return The valid points.
     */
    getValidPoints(points?: Array<Point>, insideOnly?: boolean, allowNull?: boolean): Array<Point>;
    /**
     * Hide the series if visible. If the chart.ignoreHiddenSeries option is
     * true, the chart is redrawn without this series.
     *
     * @fires Highcharts.Series#hide
     */
    hide(): void;
    /**
     * Check whether the series item is itself or inherits from a certain series
     * type.
     *
     * @param type
     *        The type of series to check for, can be either featured or custom
     *        series types. For example `column`, `pie`, `ohlc` etc.
     *
     * @return True if this item is or inherits from the given type.
     */
    is(type: string): boolean;
    /**
     * Get non-presentational attributes for a point. Used internally for both
     * styled mode and classic. Can be overridden for different series types.
     *
     * @param point
     *        The Point to inspect.
     *
     * @param state
     *        The state, can be either `hover`, `select` or undefined.
     *
     * @return A hash containing those attributes that are not settable from
     *         CSS.
     */
    markerAttribs(point: Point, state?: string): SVGAttributes;
    /**
     * Runs on mouse out of the series graphical items.
     *
     * @fires Highcharts.Series#mouseOut
     */
    onMouseOut(): void;
    /**
     * Runs on mouse over the series graphical items.
     *
     * @fires Highcharts.Series#mouseOver
     */
    onMouseOver(): void;
    /**
     * Remove a series and optionally redraw the chart.
     *
     * @param redraw
     *        Whether to redraw the chart or wait for an explicit call to
     *        Highcharts.Chart#redraw.
     *
     * @param animation
     *        Whether to apply animation, and optionally animation
     *        configuration.
     *
     * @param withEvent
     *        Used internally, whether to fire the series `remove` event.
     *
     * @fires Highcharts.Series#remove
     */
    remove(redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>), withEvent?: boolean): void;
    /**
     * Remove a point from the series. Unlike the Highcharts.Point#remove
     * method, this can also be done on a point that is not instanciated because
     * it is outside the view or subject to Highstock data grouping.
     *
     * @param i
     *        The index of the point in the data array.
     *
     * @param redraw
     *        Whether to redraw the chart after the point is added. When
     *        removing more than one point, it is highly recommended that the
     *        `redraw` option be set to `false`, and instead
     *        Highcharts.Chart#redraw is explicitly called after the adding of
     *        points is finished.
     *
     * @param animation
     *        Whether and optionally how the series should be animated.
     *
     * @fires Highcharts.Point#remove
     */
    removePoint(i: number, redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>)): void;
    /**
     * Render the graph and markers. Called internally when first rendering and
     * later when redrawing the chart. This function can be extended in plugins,
     * but normally shouldn't be called directly.
     *
     * @fires Highcharts.Series#afterRender
     */
    render(): void;
    /**
     * Select or unselect the series. This means its selected property is set,
     * the checkbox in the legend is toggled and when selected, the series is
     * returned by the Highcharts.Chart#getSelectedSeries function.
     *
     * @param selected
     *        True to select the series, false to unselect. If undefined, the
     *        selection state is toggled.
     *
     * @fires Highcharts.Series#select
     * @fires Highcharts.Series#unselect
     */
    select(selected?: boolean): void;
    /**
     * Apply a new set of data to the series and optionally redraw it. The new
     * data array is passed by reference (except in case of `updatePoints`), and
     * may later be mutated when updating the chart data.
     *
     * Note the difference in behaviour when setting the same amount of points,
     * or a different amount of points, as handled by the `updatePoints`
     * parameter.
     *
     * @param data
     *        Takes an array of data in the same format as described under
     *        `series.{type}.data` for the given series type, for example a line
     *        series would take data in the form described under
     *        series.line.data.
     *
     * @param redraw
     *        Whether to redraw the chart after the series is altered. If doing
     *        more operations on the chart, it is a good idea to set redraw to
     *        false and call Chart#redraw after.
     *
     * @param animation
     *        When the updated data is the same length as the existing data,
     *        points will be updated by default, and animation visualizes how
     *        the points are changed. Set false to disable animation, or a
     *        configuration object to set duration or easing.
     *
     * @param updatePoints
     *        When this is true, points will be updated instead of replaced
     *        whenever possible. This occurs a) when the updated data is the
     *        same length as the existing data, b) when points are matched by
     *        their id's, or c) when points can be matched by X values. This
     *        allows updating with animation and performs better. In this case,
     *        the original array is not passed by reference. Set `false` to
     *        prevent.
     */
    setData(data: Array<PointOptionsType>, redraw?: boolean, animation?: (boolean|Partial<AnimationOptionsObject>), updatePoints?: boolean): void;
    /**
     * Set the state of the series. Called internally on mouse interaction
     * operations, but it can also be called directly to visually highlight a
     * series.
     *
     * @param state
     *        The new state, can be either `'hover'`, `'inactive'`, `'select'`,
     *        or `''` (an empty string), `'normal'` or `undefined` to set to
     *        normal state.
     *
     * @param inherit
     *        Determines if state should be inherited by points too.
     */
    setState(state?: (""|SeriesStateValue), inherit?: boolean): void;
    /**
     * Show or hide the series.
     *
     * @param visible
     *        True to show the series, false to hide. If undefined, the
     *        visibility is toggled.
     *
     * @param redraw
     *        Whether to redraw the chart after the series is altered. If doing
     *        more operations on the chart, it is a good idea to set redraw to
     *        false and call chart.redraw() after.
     *
     * @fires Highcharts.Series#hide
     * @fires Highcharts.Series#show
     */
    setVisible(visible?: boolean, redraw?: boolean): void;
    /**
     * Show the series if hidden.
     *
     * @fires Highcharts.Series#show
     */
    show(): void;
    /**
     * Translate data points from raw data values to chart specific positioning
     * data needed later in the `drawPoints` and `drawGraph` functions. This
     * function can be overridden in plugins and custom series type
     * implementations.
     *
     * @fires Highcharts.Series#events:translate
     */
    translate(): void;
    /**
     * Update the series with a new set of options. For a clean and precise
     * handling of new options, all methods and elements from the series are
     * removed, and it is initialized from scratch. Therefore, this method is
     * more performance expensive than some other utility methods like
     * Series#setData or Series#setVisible.
     *
     * Note that `Series.update` may mutate the passed `data` options.
     *
     * @param options
     *        New options that will be merged with the series' existing options.
     *
     * @param redraw
     *        Whether to redraw the chart after the series is altered. If doing
     *        more operations on the chart, it is a good idea to set redraw to
     *        false and call Chart#redraw after.
     *
     * @fires Highcharts.Series#update
     * @fires Highcharts.Series#afterUpdate
     */
    update(options: SeriesOptionsType, redraw?: boolean): void;
}
/**
 * The SVGElement prototype is a JavaScript wrapper for SVG elements used in the
 * rendering layer of Highcharts. Combined with the Highcharts.SVGRenderer
 * object, these prototypes allow freeform annotation in the charts or even in
 * HTML pages without instanciating a chart. The SVGElement can also wrap HTML
 * labels, when `text` or `label` elements are created with the `useHTML`
 * parameter.
 *
 * The SVGElement instances are created through factory functions on the
 * Highcharts.SVGRenderer object, like rect, path, text, label, g and more.
 */
export class SVGElement {
    /**
     * The primary DOM node. Each `SVGElement` instance wraps a main DOM node,
     * but may also represent more nodes.
     */
    element: (HTMLDOMElement|SVGDOMElement);
    /**
     * The renderer that the SVGElement belongs to.
     */
    renderer: SVGRenderer;
    /**
     * Add the element to the DOM. All elements must be added this way.
     *
     * @param parent
     *        The parent item to add it to. If undefined, the element is added
     *        to the Highcharts.SVGRenderer.box.
     *
     * @return Returns the SVGElement for chaining.
     */
    add(parent?: SVGElement): SVGElement;
    /**
     * Add a class name to an element.
     *
     * @param className
     *        The new class name to add.
     *
     * @param replace
     *        When true, the existing class name(s) will be overwritten with the
     *        new one. When false, the new one is added.
     *
     * @return Return the SVG element for chainability.
     */
    addClass(className: string, replace?: boolean): SVGElement;
    /**
     * Align the element relative to the chart or another box.
     *
     * @param alignOptions
     *        The alignment options. The function can be called without this
     *        parameter in order to re-align an element after the box has been
     *        updated.
     *
     * @param alignByTranslate
     *        Align element by translation.
     *
     * @param box
     *        The box to align to, needs a width and height. When the box is a
     *        string, it refers to an object in the Renderer. For example, when
     *        box is `spacingBox`, it refers to `Renderer.spacingBox` which
     *        holds `width`, `height`, `x` and `y` properties.
     *
     * @return Returns the SVGElement for chaining.
     */
    align(alignOptions?: AlignObject, alignByTranslate?: boolean, box?: (string|BBoxObject)): SVGElement;
    /**
     * Animate to given attributes or CSS properties.
     *
     * @param params
     *        SVG attributes or CSS to animate.
     *
     * @param options
     *        Animation options.
     *
     * @param complete
     *        Function to perform at the end of animation.
     *
     * @return Returns the SVGElement for chaining.
     */
    animate(params: SVGAttributes, options?: (boolean|Partial<AnimationOptionsObject>), complete?: Function): SVGElement;
    attr(key: string): (number|string);
    /**
     * Apply native and custom attributes to the SVG elements.
     *
     * In order to set the rotation center for rotation, set x and y to 0 and
     * use `translateX` and `translateY` attributes to position the element
     * instead.
     *
     * Attributes frequently used in Highcharts are `fill`, `stroke`,
     * `stroke-width`.
     *
     * @param hash
     *        The native and custom SVG attributes.
     *
     * @param val
     *        If the type of the first argument is `string`, the second can be a
     *        value, which will serve as a single attribute setter. If the first
     *        argument is a string and the second is undefined, the function
     *        serves as a getter and the current value of the property is
     *        returned.
     *
     * @param complete
     *        A callback function to execute after setting the attributes. This
     *        makes the function compliant and interchangeable with the
     *        SVGElement#animate function.
     *
     * @param continueAnimation
     *        Used internally when `.attr` is called as part of an animation
     *        step. Otherwise, calling `.attr` for an attribute will stop
     *        animation for that attribute.
     *
     * @return If used as a setter, it returns the current Highcharts.SVGElement
     *         so the calls can be chained. If used as a getter, the current
     *         value of the attribute is returned.
     */
    attr(hash?: (string|SVGAttributes), val?: (number|string|SVGPathArray), complete?: Function, continueAnimation?: boolean): SVGElement;
    /**
     * Apply a clipping rectangle to this element.
     *
     * @param clipRect
     *        The clipping rectangle. If skipped, the current clip is removed.
     *
     * @return Returns the SVG element to allow chaining.
     */
    clip(clipRect?: ClipRectElement): SVGElement;
    /**
     * Calculate the coordinates needed for drawing a rectangle crisply and
     * return the calculated attributes.
     *
     * @param rect
     *        Rectangle to crisp.
     *
     * @param strokeWidth
     *        The stroke width to consider when computing crisp positioning. It
     *        can also be set directly on the rect parameter.
     *
     * @return The modified rectangle arguments.
     */
    crisp(rect: RectangleObject, strokeWidth?: number): RectangleObject;
    /**
     * Set styles for the element. In addition to CSS styles supported by native
     * SVG and HTML elements, there are also some custom made for Highcharts,
     * like `width`, `ellipsis` and `textOverflow` for SVG text elements.
     *
     * @param styles
     *        The new CSS styles.
     *
     * @return Return the SVG element for chaining.
     */
    css(styles: CSSObject): SVGElement;
    /**
     * Destroy the element and element wrapper and clear up the DOM and event
     * hooks.
     */
    destroy(): void;
    /**
     * Fade out an element by animating its opacity down to 0, and hide it on
     * complete. Used internally for the tooltip.
     *
     * @param duration
     *        The fade duration in milliseconds.
     */
    fadeOut(duration?: number): void;
    /**
     * Get the bounding box (width, height, x and y) for the element. Generally
     * used to get rendered text size. Since this is called a lot in charts, the
     * results are cached based on text properties, in order to save DOM
     * traffic. The returned bounding box includes the rotation, so for example
     * a single text line of rotation 90 will report a greater height, and a
     * width corresponding to the line-height.
     *
     * @param reload
     *        Skip the cache and get the updated DOM bouding box.
     *
     * @param rot
     *        Override the element's rotation. This is internally used on axis
     *        labels with a value of 0 to find out what the bounding box would
     *        be have been if it were not rotated.
     *
     * @return The bounding box with `x`, `y`, `width` and `height` properties.
     */
    getBBox(reload?: boolean, rot?: number): BBoxObject;
    /**
     * Get the computed style. Only in styled mode.
     *
     * @param prop
     *        The property name to check for.
     *
     * @return The current computed value.
     */
    getStyle(prop: string): string;
    /**
     * Check if an element has the given class name.
     *
     * @param className
     *        The class name to check for.
     *
     * @return Whether the class name is found.
     */
    hasClass(className: string): boolean;
    /**
     * Hide the element, similar to setting the `visibility` attribute to
     * `hidden`.
     *
     * @param hideByTranslation
     *        The flag to determine if element should be hidden by moving out of
     *        the viewport. Used for example for dataLabels.
     *
     * @return Returns the SVGElement for chaining.
     */
    hide(hideByTranslation?: boolean): SVGElement;
    /**
     * Initialize the SVG element. This function only exists to make the
     * initialization process overridable. It should not be called directly.
     *
     * @param renderer
     *        The SVGRenderer instance to initialize to.
     *
     * @param nodeName
     *        The SVG node name.
     */
    init(renderer: SVGRenderer, nodeName: string): void;
    /**
     * Invert a group, rotate and flip. This is used internally on inverted
     * charts, where the points and graphs are drawn as if not inverted, then
     * the series group elements are inverted.
     *
     * @param inverted
     *        Whether to invert or not. An inverted shape can be un-inverted by
     *        setting it to false.
     *
     * @return Return the SVGElement for chaining.
     */
    invert(inverted: boolean): SVGElement;
    /**
     * Add an event listener. This is a simple setter that replaces all other
     * events of the same type, opposed to the Highcharts#addEvent function.
     *
     * @param eventType
     *        The event type. If the type is `click`, Highcharts will internally
     *        translate it to a `touchstart` event on touch devices, to prevent
     *        the browser from waiting for a click event from firing.
     *
     * @param handler
     *        The handler callback.
     *
     * @return The SVGElement for chaining.
     */
    on(eventType: string, handler: Function): SVGElement;
    /**
     * Remove a class name from the element.
     *
     * @param className
     *        The class name to remove.
     *
     * @return Returns the SVG element for chainability.
     */
    removeClass(className: (string|RegExp)): SVGElement;
    /**
     * Set the coordinates needed to draw a consistent radial gradient across a
     * shape regardless of positioning inside the chart. Used on pie slices to
     * make all the slices have the same radial reference point.
     *
     * @param coordinates
     *        The center reference. The format is `[centerX, centerY, diameter]`
     *        in pixels.
     *
     * @return Returns the SVGElement for chaining.
     */
    setRadialReference(coordinates: Array<number>): SVGElement;
    /**
     * Add a shadow to the element. Must be called after the element is added to
     * the DOM. In styled mode, this method is not used, instead use `defs` and
     * filters.
     *
     * @param shadowOptions
     *        The shadow options. If `true`, the default options are applied. If
     *        `false`, the current shadow will be removed.
     *
     * @param group
     *        The SVG group element where the shadows will be applied. The
     *        default is to add it to the same parent as the current element.
     *        Internally, this is ised for pie slices, where all the shadows are
     *        added to an element behind all the slices.
     *
     * @param cutOff
     *        Used internally for column shadows.
     *
     * @return Returns the SVGElement for chaining.
     */
    shadow(shadowOptions?: (boolean|ShadowOptionsObject), group?: SVGElement, cutOff?: boolean): SVGElement;
    /**
     * Show the element after it has been hidden.
     *
     * @param inherit
     *        Set the visibility attribute to `inherit` rather than `visible`.
     *        The difference is that an element with `visibility="visible"` will
     *        be visible even if the parent is hidden.
     *
     * @return Returns the SVGElement for chaining.
     */
    show(inherit?: boolean): SVGElement;
    /**
     * Get the computed stroke width in pixel values. This is used extensively
     * when drawing shapes to ensure the shapes are rendered crisp and
     * positioned correctly relative to each other. Using `shape-rendering:
     * crispEdges` leaves us less control over positioning, for example when we
     * want to stack columns next to each other, or position things
     * pixel-perfectly within the plot box.
     *
     * The common pattern when placing a shape is:
     *
     * - Create the SVGElement and add it to the DOM. In styled mode, it will
     * now receive a stroke width from the style sheet. In classic mode we will
     * add the `stroke-width` attribute.
     *
     * - Read the computed `elem.strokeWidth()`.
     *
     * - Place it based on the stroke width.
     *
     * @return The stroke width in pixels. Even if the given stroke widtch (in
     *         CSS or by attributes) is based on `em` or other units, the pixel
     *         size is returned.
     */
    strokeWidth(): number;
    /**
     * Bring the element to the front. Alternatively, a new zIndex can be set.
     *
     * @return Returns the SVGElement for chaining.
     */
    toFront(): SVGElement;
    /**
     * Move an object and its children by x and y values.
     *
     * @param x
     *        The x value.
     *
     * @param y
     *        The y value.
     */
    translate(x: number, y: number): SVGElement;
}
/**
 * Allows direct access to the Highcharts rendering layer in order to draw
 * primitive shapes like circles, rectangles, paths or text directly on a chart,
 * or independent from any chart. The SVGRenderer represents a wrapper object
 * for SVG in modern browsers. Through the VMLRenderer, part of the `oldie.js`
 * module, it also brings vector graphics to IE <= 8.
 *
 * An existing chart's renderer can be accessed through Chart.renderer. The
 * renderer can also be used completely decoupled from a chart.
 */
export class SVGRenderer {
    /**
     * Allows direct access to the Highcharts rendering layer in order to draw
     * primitive shapes like circles, rectangles, paths or text directly on a
     * chart, or independent from any chart. The SVGRenderer represents a
     * wrapper object for SVG in modern browsers. Through the VMLRenderer, part
     * of the `oldie.js` module, it also brings vector graphics to IE <= 8.
     *
     * An existing chart's renderer can be accessed through Chart.renderer. The
     * renderer can also be used completely decoupled from a chart.
     *
     * @param container
     *        Where to put the SVG in the web page.
     *
     * @param width
     *        The width of the SVG.
     *
     * @param height
     *        The height of the SVG.
     *
     * @param style
     *        The box style, if not in styleMode
     *
     * @param forExport
     *        Whether the rendered content is intended for export.
     *
     * @param allowHTML
     *        Whether the renderer is allowed to include HTML text, which will
     *        be projected on top of the SVG.
     *
     * @param styledMode
     *        Whether the renderer belongs to a chart that is in styled mode. If
     *        it does, it will avoid setting presentational attributes in some
     *        cases, but not when set explicitly through `.attr` and `.css` etc.
     */
    constructor(container: HTMLDOMElement, width: number, height: number, style?: CSSObject, forExport?: boolean, allowHTML?: boolean, styledMode?: boolean);
    /**
     * The root `svg` node of the renderer.
     */
    box: SVGDOMElement;
    /**
     * The wrapper for the root `svg` node of the renderer.
     */
    boxWrapper: SVGElement;
    /**
     * A pointer to the `defs` node of the root SVG.
     */
    defs: SVGElement;
    /**
     * A pointer to the renderer's associated Element class. The VMLRenderer
     * will have a pointer to VMLElement here.
     */
    Element: SVGElement;
    /**
     * A collection of characters mapped to HTML entities. When `useHTML` on an
     * element is true, these entities will be rendered correctly by HTML. In
     * the SVG pseudo-HTML, they need to be unescaped back to simple characters,
     * so for example `&lt;` will render as `<`.
     */
    escapes: Dictionary<string>;
    /**
     * An extendable collection of functions for defining symbol paths.
     */
    symbols: SymbolDictionary;
    /**
     * Draw and return an arc. Overloaded function that takes arguments object.
     *
     * @param attribs
     *        Initial SVG attributes.
     *
     * @return The generated wrapper element.
     */
    arc(attribs: SVGAttributes): SVGElement;
    /**
     * Draw and return an arc.
     *
     * @param x
     *        Center X position.
     *
     * @param y
     *        Center Y position.
     *
     * @param r
     *        The outer radius' of the arc.
     *
     * @param innerR
     *        Inner radius like used in donut charts.
     *
     * @param start
     *        The starting angle of the arc in radians, where 0 is to the right
     *        and `-Math.PI/2` is up.
     *
     * @param end
     *        The ending angle of the arc in radians, where 0 is to the right
     *        and `-Math.PI/2` is up.
     *
     * @return The generated wrapper element.
     */
    arc(x?: number, y?: number, r?: number, innerR?: number, start?: number, end?: number): SVGElement;
    /**
     * Create a button with preset states.
     *
     * @param text
     *        The text or HTML to draw.
     *
     * @param x
     *        The x position of the button's left side.
     *
     * @param y
     *        The y position of the button's top side.
     *
     * @param callback
     *        The function to execute on button click or touch.
     *
     * @param normalState
     *        SVG attributes for the normal state.
     *
     * @param hoverState
     *        SVG attributes for the hover state.
     *
     * @param pressedState
     *        SVG attributes for the pressed state.
     *
     * @param disabledState
     *        SVG attributes for the disabled state.
     *
     * @param shape
     *        The shape type.
     *
     * @param useHTML
     *        Wether to use HTML to render the label.
     *
     * @return The button element.
     */
    button(text: string, x: number, y: number, callback: EventCallbackFunction<SVGElement>, normalState?: SVGAttributes, hoverState?: SVGAttributes, pressedState?: SVGAttributes,
disabledState?: SVGAttributes, shape?: SymbolKeyValue, useHTML?: boolean): SVGElement;
    /**
     * Draw a circle, wraps the SVG `circle` element.
     *
     * @param attribs
     *        The initial attributes.
     *
     * @return The generated wrapper element.
     */
    circle(attribs?: SVGAttributes): SVGElement;
    /**
     * Draw a circle, wraps the SVG `circle` element.
     *
     * @param x
     *        The center x position.
     *
     * @param y
     *        The center y position.
     *
     * @param r
     *        The radius.
     *
     * @return The generated wrapper element.
     */
    circle(x?: number, y?: number, r?: number): SVGElement;
    /**
     * Define a clipping rectangle. The clipping rectangle is later applied to
     * SVGElement objects through the SVGElement#clip function.
     *
     * @return A clipping rectangle.
     */
    clipRect(x?: number, y?: number, width?: number, height?: number): ClipRectElement;
    /**
     * Create a wrapper for an SVG element. Serves as a factory for SVGElement,
     * but this function is itself mostly called from primitive factories like
     * SVGRenderer#path, SVGRenderer#rect or SVGRenderer#text.
     *
     * @param nodeName
     *        The node name, for example `rect`, `g` etc.
     *
     * @return The generated SVGElement.
     */
    createElement(nodeName: string): SVGElement;
    /**
     * Make a straight line crisper by not spilling out to neighbour pixels.
     *
     * @param points
     *        The original points on the format `[['M', 0, 0], ['L', 100, 0]]`.
     *
     * @param width
     *        The width of the line.
     *
     * @param roundingFunction
     *        The rounding function name on the `Math` object, can be one of
     *        `round`, `floor` or `ceil`.
     *
     * @return The original points array, but modified to render crisply.
     */
    crispLine(points: SVGPathArray, width: number, roundingFunction: string): SVGPathArray;
    /**
     * General method for adding a definition to the SVG `defs` tag. Can be used
     * for gradients, fills, filters etc. Styled mode only. A hook for adding
     * general definitions to the SVG's defs tag. Definitions can be referenced
     * from the CSS by its `id`. Read more in gradients, shadows and patterns.
     * Styled mode only.
     *
     * @param def
     *        A serialized form of an SVG definition, including children.
     *
     * @return The inserted node.
     */
    definition(def: SVGDefinitionObject): SVGElement;
    /**
     * Destroys the renderer and its allocated members.
     */
    destroy(): null;
    /**
     * Dummy function for plugins, called every time the renderer is updated.
     * Prior to Highcharts 5, this was used for the canvg renderer.
     */
    draw(): void;
    /**
     * Utility to return the baseline offset and total line height from the font
     * size.
     *
     * @param fontSize
     *        The current font size to inspect. If not given, the font size will
     *        be found from the DOM element.
     *
     * @param elem
     *        The element to inspect for a current font size.
     *
     * @return The font metrics.
     */
    fontMetrics(fontSize?: (number|string), elem?: (SVGDOMElement|SVGElement)): FontMetricsObject;
    /**
     * Create and return an svg group element. Child Highcharts.SVGElement
     * objects are added to the group by using the group as the first parameter
     * in add().
     *
     * @param name
     *        The group will be given a class name of `highcharts-{name}`. This
     *        can be used for styling and scripting.
     *
     * @return The generated wrapper element.
     */
    g(name?: string): SVGElement;
    /**
     * Returns white for dark colors and black for bright colors.
     *
     * @param rgba
     *        The color to get the contrast for.
     *
     * @return The contrast color, either `#000000` or `#FFFFFF`.
     */
    getContrast(rgba: ColorString): ColorString;
    /**
     * Display an image.
     *
     * @param src
     *        The image source.
     *
     * @param x
     *        The X position.
     *
     * @param y
     *        The Y position.
     *
     * @param width
     *        The image width. If omitted, it defaults to the image file width.
     *
     * @param height
     *        The image height. If omitted it defaults to the image file height.
     *
     * @param onload
     *        Event handler for image load.
     *
     * @return The generated wrapper element.
     */
    image(src: string, x?: number, y?: number, width?: number, height?: number, onload?: Function): SVGElement;
    /**
     * Initialize the SVGRenderer. Overridable initializer function that takes
     * the same parameters as the constructor.
     *
     * @param container
     *        Where to put the SVG in the web page.
     *
     * @param width
     *        The width of the SVG.
     *
     * @param height
     *        The height of the SVG.
     *
     * @param style
     *        The box style, if not in styleMode
     *
     * @param forExport
     *        Whether the rendered content is intended for export.
     *
     * @param allowHTML
     *        Whether the renderer is allowed to include HTML text, which will
     *        be projected on top of the SVG.
     *
     * @param styledMode
     *        Whether the renderer belongs to a chart that is in styled mode. If
     *        it does, it will avoid setting presentational attributes in some
     *        cases, but not when set explicitly through `.attr` and `.css` etc.
     */
    init(container: HTMLDOMElement, width: number, height: number, style?: CSSObject, forExport?: boolean, allowHTML?: boolean, styledMode?: boolean): void;
    /**
     * Detect whether the renderer is hidden. This happens when one of the
     * parent elements has `display: none`. Used internally to detect when we
     * needto render preliminarily in another div to get the text bounding boxes
     * right.
     *
     * @return True if it is hidden.
     */
    isHidden(): boolean;
    /**
     * Draw a label, which is an extended text element with support for border
     * and background. Highcharts creates a `g` element with a text and a `path`
     * or `rect` inside, to make it behave somewhat like a HTML div. Border and
     * background are set through `stroke`, `stroke-width` and `fill` attributes
     * using the attr method. To update the text after render, run `label.attr({
     * text: 'New text' })`.
     *
     * @param str
     *        The initial text string or (subset) HTML to render.
     *
     * @param x
     *        The x position of the label's left side.
     *
     * @param y
     *        The y position of the label's top side or baseline, depending on
     *        the `baseline` parameter.
     *
     * @param shape
     *        The shape of the label's border/background, if any. Defaults to
     *        `rect`. Other possible values are `callout` or other shapes
     *        defined in Highcharts.SVGRenderer#symbols.
     *
     * @param anchorX
     *        In case the `shape` has a pointer, like a flag, this is the
     *        coordinates it should be pinned to.
     *
     * @param anchorY
     *        In case the `shape` has a pointer, like a flag, this is the
     *        coordinates it should be pinned to.
     *
     * @param useHTML
     *        Wether to use HTML to render the label.
     *
     * @param baseline
     *        Whether to position the label relative to the text baseline, like
     *        renderer.text, or to the upper border of the rectangle.
     *
     * @param className
     *        Class name for the group.
     *
     * @return The generated label.
     */
    label(str: string, x: number, y?: number, shape?: string, anchorX?: number, anchorY?: number, useHTML?: boolean, baseline?: boolean, className?: string): SVGElement;
    /**
     * Draw a path, wraps the SVG `path` element.
     *
     * @param path
     *        An SVG path definition in array form.
     *
     * @return The generated wrapper element.
     */
    path(path?: SVGPathArray): SVGElement;
    /**
     * Draw a path, wraps the SVG `path` element.
     *
     * @param attribs
     *        The initial attributes.
     *
     * @return The generated wrapper element.
     */
    path(attribs?: SVGAttributes): SVGElement;
    /**
     * Draw and return a rectangle.
     *
     * @param attributes
     *        General SVG attributes for the rectangle.
     *
     * @return The generated wrapper element.
     */
    rect(attributes?: SVGAttributes): SVGElement;
    /**
     * Draw and return a rectangle.
     *
     * @param x
     *        Left position.
     *
     * @param y
     *        Top position.
     *
     * @param width
     *        Width of the rectangle.
     *
     * @param height
     *        Height of the rectangle.
     *
     * @param r
     *        Border corner radius.
     *
     * @param strokeWidth
     *        A stroke width can be supplied to allow crisp drawing.
     *
     * @return The generated wrapper element.
     */
    rect(x?: number, y?: number, width?: number, height?: number, r?: number, strokeWidth?: number): SVGElement;
    /**
     * Resize the SVGRenderer#box and re-align all aligned child elements.
     *
     * @param width
     *        The new pixel width.
     *
     * @param height
     *        The new pixel height.
     *
     * @param animate
     *        Whether and how to animate.
     */
    setSize(width: number, height: number, animate?: (boolean|Partial<AnimationOptionsObject>)): void;
    /**
     * Apply the global style on the renderer, mixed with the default styles.
     *
     * @param style
     *        CSS to apply.
     */
    setStyle(style: CSSObject): void;
    /**
     * Draw a symbol out of pre-defined shape paths from SVGRenderer#symbols. It
     * is used in Highcharts for point makers, which cake a `symbol` option, and
     * label and button backgrounds like in the tooltip and stock flags.
     *
     * @param symbol
     *        The symbol name.
     *
     * @param x
     *        The X coordinate for the top left position.
     *
     * @param y
     *        The Y coordinate for the top left position.
     *
     * @param width
     *        The pixel width.
     *
     * @param height
     *        The pixel height.
     *
     * @param options
     *        Additional options, depending on the actual symbol drawn.
     */
    symbol(symbol: string, x?: number, y?: number, width?: number, height?: number, options?: SymbolOptionsObject): SVGElement;
    /**
     * Draw text. The text can contain a subset of HTML, like spans and anchors
     * and some basic text styling of these. For more advanced features like
     * border and background, use Highcharts.SVGRenderer#label instead. To
     * update the text after render, run `text.attr({ text: 'New text' })`.
     *
     * @param str
     *        The text of (subset) HTML to draw.
     *
     * @param x
     *        The x position of the text's lower left corner.
     *
     * @param y
     *        The y position of the text's lower left corner.
     *
     * @param useHTML
     *        Use HTML to render the text.
     *
     * @return The text object.
     */
    text(str?: string, x?: number, y?: number, useHTML?: boolean): SVGElement;
}
/**
 * The Tick class.
 */
export class Tick {
    /**
     * The Tick class.
     *
     * @param axis
     *        The axis of the tick.
     *
     * @param pos
     *        The position of the tick on the axis in terms of axis values.
     *
     * @param type
     *        The type of tick, either 'minor' or an empty string
     *
     * @param noLabel
     *        Whether to disable the label or not. Defaults to false.
     *
     * @param parameters
     *        Optional parameters for the tick.
     */
    constructor(axis: Axis, pos: number, type?: string, noLabel?: boolean, parameters?: object);
    /**
     * The related axis of the tick.
     */
    axis: Axis;
    /**
     * The rendered grid line of the tick.
     */
    gridLine?: SVGElement;
    /**
     * True if the tick is the first one on the axis.
     */
    readonly isFirst?: boolean;
    /**
     * True if the tick is the last one on the axis.
     */
    readonly isLast?: boolean;
    /**
     * The rendered text label of the tick.
     */
    label?: SVGElement;
    /**
     * The rendered mark of the tick.
     */
    mark?: SVGElement;
    /**
     * The logical position of the tick on the axis in terms of axis values.
     */
    pos: number;
    /**
     * The mark offset of the tick on the axis. Usually `undefined`, numeric for
     * grid axes.
     */
    tickmarkOffset?: number;
    /**
     * The tick type, which can be `"minor"`, or an empty string.
     */
    type: string;
}
/**
 * The Time class. Time settings are applied in general for each page using
 * `Highcharts.setOptions`, or individually for each Chart item through the time
 * options set.
 *
 * The Time object is available from Highcharts.Chart#time, which refers to
 * `Highcharts.time` if no individual time settings are applied.
 */
export class Time {
    /**
     * The Time class. Time settings are applied in general for each page using
     * `Highcharts.setOptions`, or individually for each Chart item through the
     * time options set.
     *
     * The Time object is available from Highcharts.Chart#time, which refers to
     * `Highcharts.time` if no individual time settings are applied.
     *
     * @param options
     *        Time options as defined in chart.options.time.
     */
    constructor(options: TimeOptions);
    /**
     * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970)
     * into a human readable date string. The available format keys are listed
     * below. Additional formats can be given in the Highcharts.dateFormats
     * hook.
     *
     * Supported format keys:
     *
     * - `%a`: Short weekday, like 'Mon'
     *
     * - `%A`: Long weekday, like 'Monday'
     *
     * - `%d`: Two digit day of the month, 01 to 31
     *
     * - `%e`: Day of the month, 1 through 31
     *
     * - `%w`: Day of the week, 0 through 6
     *
     * - `%b`: Short month, like 'Jan'
     *
     * - `%B`: Long month, like 'January'
     *
     * - `%m`: Two digit month number, 01 through 12
     *
     * - `%y`: Two digits year, like 09 for 2009
     *
     * - `%Y`: Four digits year, like 2009
     *
     * - `%H`: Two digits hours in 24h format, 00 through 23
     *
     * - `%k`: Hours in 24h format, 0 through 23
     *
     * - `%I`: Two digits hours in 12h format, 00 through 11
     *
     * - `%l`: Hours in 12h format, 1 through 12
     *
     * - `%M`: Two digits minutes, 00 through 59
     *
     * - `%p`: Upper case AM or PM
     *
     * - `%P`: Lower case AM or PM
     *
     * - `%S`: Two digits seconds, 00 through 59
     *
     * - `%L`: Milliseconds (naming from Ruby)
     *
     * @param format
     *        The desired format where various time representations are prefixed
     *        with %.
     *
     * @param timestamp
     *        The JavaScript timestamp.
     *
     * @param capitalize
     *        Upper case first letter in the return.
     *
     * @return The formatted date.
     */
    dateFormat(format: string, timestamp: number, capitalize?: boolean): string;
    /**
     * Get the value of a date object in given units, and subject to the Time
     * object's current timezone settings. This function corresponds directly to
     * JavaScripts `Date.getXXX / Date.getUTCXXX`, so instead of calling
     * `date.getHours()` or `date.getUTCHours()` we will call
     * `time.get('Hours')`.
     *
     * @return The given time unit
     */
    get(unit: TimeUnitValue, date: Date): number;
    /**
     * Return an array with time positions distributed on round time values
     * right and right after min and max. Used in datetime axes as well as for
     * grouping data on a datetime axis.
     *
     * @param normalizedInterval
     *        The interval in axis values (ms) and the count
     *
     * @param min
     *        The minimum in axis values
     *
     * @param max
     *        The maximum in axis values
     */
    getTimeTicks(normalizedInterval: TimeNormalizedObject, min?: number, max?: number, startOfWeek?: number): AxisTickPositionsArray;
    /**
     * Get the time zone offset based on the current timezone information as set
     * in the global options.
     *
     * @param timestamp
     *        The JavaScript timestamp to inspect.
     *
     * @return The timezone offset in minutes compared to UTC.
     */
    getTimezoneOffset(timestamp: number): number;
    /**
     * Make a time and returns milliseconds. Interprets the inputs as UTC time,
     * local time or a specific timezone time depending on the current time
     * settings.
     *
     * @param year
     *        The year
     *
     * @param month
     *        The month. Zero-based, so January is 0.
     *
     * @param date
     *        The day of the month
     *
     * @param hours
     *        The hour of the day, 0-23.
     *
     * @param minutes
     *        The minutes
     *
     * @param seconds
     *        The seconds
     *
     * @return The time in milliseconds since January 1st 1970.
     */
    makeTime(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number): number;
    /**
     * Set the value of a date object in given units, and subject to the Time
     * object's current timezone settings. This function corresponds directly to
     * JavaScripts `Date.setXXX / Date.setUTCXXX`, so instead of calling
     * `date.setHours(0)` or `date.setUTCHours(0)` we will call
     * `time.set('Hours', 0)`.
     *
     * @return The epoch milliseconds of the updated date
     */
    set(unit: TimeUnitValue, date: Date, value: number): number;
}
/**
 * Tooltip of a chart.
 */
export class Tooltip {
    /**
     * Tooltip of a chart.
     *
     * @param chart
     *        The chart instance.
     *
     * @param options
     *        Tooltip options.
     */
    constructor(chart: Chart, options: TooltipOptions);
    /**
     * Chart of the tooltip.
     */
    readonly chart: Chart;
    /**
     * Reference to the tooltip's container, when [Highcharts.Tooltip#outside]
     * is set to true, otherwise it's undefined.
     */
    container?: HTMLDOMElement;
    /**
     * Used tooltip options.
     */
    readonly options: TooltipOptions;
    /**
     * Whether to allow the tooltip to render outside the chart's SVG element
     * box. By default (false), the tooltip is rendered within the chart's SVG
     * element, which results in the tooltip being aligned inside the chart
     * area.
     */
    readonly outside: boolean;
    /**
     * Reference to the tooltip's renderer, when [Highcharts.Tooltip#outside] is
     * set to true, otherwise it's undefined.
     */
    renderer?: SVGRenderer;
    /**
     * When the tooltip is shared, the entire plot area will capture mouse
     * movement or touch events.
     */
    readonly shared?: boolean;
    /**
     * True, if the tooltip is split into one label per series, with the header
     * close to the axis.
     */
    readonly split?: boolean;
    /**
     * In case no user defined formatter is given, this will be used. Note that
     * the context here is an object holding point, series, x, y etc.
     */
    defaultFormatter(tooltip: Tooltip): Array<string>;
    /**
     * Removes and destroys the tooltip and its elements.
     */
    destroy(): void;
    /**
     * Creates the Tooltip label element if it does not exist, then returns it.
     */
    getLabel(): SVGElement;
    /**
     * Hides the tooltip with a fade out animation.
     *
     * @param delay
     *        The fade out in milliseconds. If no value is provided the value of
     *        the tooltip.hideDelay option is used. A value of 0 disables the
     *        fade out animation.
     */
    hide(delay?: number): void;
    /**
     * Refresh the tooltip's text and position.
     *
     * @param pointOrPoints
     *        Either a point or an array of points.
     *
     * @param mouseEvent
     *        Mouse event, that is responsible for the refresh and should be
     *        used for the tooltip update.
     */
    refresh(pointOrPoints: (Point|Array<Point>), mouseEvent?: PointerEventObject): void;
    /**
     * Updates the tooltip with the provided tooltip options.
     *
     * @param options
     *        The tooltip options to update.
     */
    update(options: TooltipOptions): void;
}
/**
 * An array containing the current chart objects in the page. A chart's position
 * in the array is preserved throughout the page's lifetime. When a chart is
 * destroyed, the array item becomes `undefined`.
 */
export let charts: Array<(Chart|undefined)>;
/**
 * A hook for defining additional date format specifiers. New specifiers are
 * defined as key-value pairs by using the specifier as key, and a function
 * which takes the timestamp as value. This function returns the formatted
 * portion of the date.
 */
export let dateFormats: Dictionary<TimeFormatCallbackFunction>;
/**
 * Global default settings.
 */
export let defaultOptions: Options;
/**
 * Theme options that should get applied to the chart. In module mode it might
 * not be possible to change this property because of read-only restrictions,
 * instead use Highcharts.setOptions.
 */
export let theme: Options;
/**
 * Global `Time` object with default options. Since v6.0.5, time settings can be
 * applied individually for each chart. If no individual settings apply, this
 * `Time` object is shared by all instances.
 */
export let time: Time;
/**
 * Add an event listener.
 *
 * @param el
 *        The element or object to add a listener to. It can be a
 *        HTMLDOMElement, an SVGElement or any other object.
 *
 * @param type
 *        The event type.
 *
 * @param fn
 *        The function callback to execute when the event is fired.
 *
 * @param options
 *        Options for adding the event.
 *
 * @return A callback function to remove the added event.
 */
export function addEvent<T>(el: (T|Class<T>), type: string, fn: (Function|EventCallbackFunction<T>), options?: EventOptionsObject): Function;
/**
 * The global animate method, which uses Fx to create individual animators.
 *
 * @param el
 *        The element to animate.
 *
 * @param params
 *        An object containing key-value pairs of the properties to animate.
 *        Supports numeric as pixel-based CSS properties for HTML objects and
 *        attributes for SVGElements.
 *
 * @param opt
 *        Animation options.
 */
export function animate(el: (HTMLDOMElement|SVGElement), params: (CSSObject|SVGAttributes), opt?: Partial<AnimationOptionsObject>): void;
/**
 * Get the animation in object form, where a disabled animation is always
 * returned as `{ duration: 0 }`.
 *
 * @param animation
 *        An animation setting. Can be an object with duration, complete and
 *        easing properties, or a boolean to enable or disable.
 *
 * @return An object with at least a duration property.
 */
export function animObject(animation?: (boolean|AnimationOptionsObject)): AnimationOptionsObject;
/**
 * Non-recursive method to find the lowest member of an array. `Math.max` raises
 * a maximum call stack size exceeded error in Chrome when trying to apply more
 * than 150.000 points. This method is slightly slower, but safe.
 *
 * @param data
 *        An array of numbers.
 *
 * @return The highest number.
 */
export function arrayMax(data: Array<any>): number;
/**
 * Non-recursive method to find the lowest member of an array. `Math.min` raises
 * a maximum call stack size exceeded error in Chrome when trying to apply more
 * than 150.000 points. This method is slightly slower, but safe.
 *
 * @param data
 *        An array of numbers.
 *
 * @return The lowest number.
 */
export function arrayMin(data: Array<any>): number;
/**
 * Set or get an attribute or an object of attributes. To use as a setter, pass
 * a key and a value, or let the second argument be a collection of keys and
 * values. To use as a getter, pass only a string as the second argument.
 *
 * @param elem
 *        The DOM element to receive the attribute(s).
 *
 * @param prop
 *        The property or an object of key-value pairs.
 *
 * @param value
 *        The value if a single property is set.
 *
 * @return When used as a getter, return the value.
 */
export function attr(elem: (HTMLDOMElement|SVGDOMElement), prop?: (string|HTMLAttributes|SVGAttributes), value?: (number|string)): (string|null|undefined);
/**
 * Factory function for basic charts.
 *
 * @param options
 *        The chart options structure.
 *
 * @param callback
 *        Function to run when the chart has loaded and and all external images
 *        are loaded. Defining a chart.events.load handler is equivalent.
 *
 * @return Returns the Chart object.
 */
export function chart(options: Options, callback?: ChartCallbackFunction): Chart;
/**
 * Factory function for basic charts.
 *
 * @param renderTo
 *        The DOM element to render to, or its id.
 *
 * @param options
 *        The chart options structure.
 *
 * @param callback
 *        Function to run when the chart has loaded and and all external images
 *        are loaded. Defining a chart.events.load handler is equivalent.
 *
 * @return Returns the Chart object.
 */
export function chart(renderTo: (string|HTMLDOMElement), options: Options, callback?: ChartCallbackFunction): Chart;
/**
 * Internal clear timeout. The function checks that the `id` was not removed
 * (e.g. by `chart.destroy()`). For the details see issue .7901.
 *
 * @param id
 *        Id of a timeout.
 */
export function clearTimeout(id: number): void;
/**
 * Creates a color instance out of a color string.
 *
 * @param input
 *        The input color in either rbga or hex format
 *
 * @return Color instance
 */
export function color(input: ColorType): Color;
/**
 * Fix JS round off float errors.
 *
 * @param num
 *        A float number to fix.
 *
 * @param prec
 *        The precision.
 *
 * @return The corrected float number.
 */
export function correctFloat(num: number, prec?: number): number;
/**
 * Utility function to create an HTML element with attributes and styles.
 *
 * @param tag
 *        The HTML tag.
 *
 * @param attribs
 *        Attributes as an object of key-value pairs.
 *
 * @param styles
 *        Styles as an object of key-value pairs.
 *
 * @param parent
 *        The parent HTML object.
 *
 * @param nopad
 *        If true, remove all padding, border and margin.
 *
 * @return The created DOM element.
 */
export function createElement(tag: string, attribs?: HTMLAttributes, styles?: CSSObject, parent?: HTMLDOMElement, nopad?: boolean): HTMLDOMElement;
/**
 * Set CSS on a given element.
 *
 * @param el
 *        An HTML DOM element.
 *
 * @param styles
 *        Style object with camel case property names.
 */
export function css(el: (HTMLDOMElement|SVGDOMElement), styles: CSSObject): void;
/**
 * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a
 * human readable date string. The format is a subset of the formats for PHP's
 * strftime function. Additional formats can be given in the
 * Highcharts.dateFormats hook.
 *
 * Since v6.0.5, all internal dates are formatted through the
 * Highcharts.Chart#time instance to respect chart-level time settings. The
 * `Highcharts.dateFormat` function only reflects global time settings set with
 * `setOptions`.
 *
 * Supported format keys:
 *
 * - `%a`: Short weekday, like 'Mon'
 *
 * - `%A`: Long weekday, like 'Monday'
 *
 * - `%d`: Two digit day of the month, 01 to 31
 *
 * - `%e`: Day of the month, 1 through 31
 *
 * - `%w`: Day of the week, 0 through 6
 *
 * - `%b`: Short month, like 'Jan'
 *
 * - `%B`: Long month, like 'January'
 *
 * - `%m`: Two digit month number, 01 through 12
 *
 * - `%y`: Two digits year, like 09 for 2009
 *
 * - `%Y`: Four digits year, like 2009
 *
 * - `%H`: Two digits hours in 24h format, 00 through 23
 *
 * - `%k`: Hours in 24h format, 0 through 23
 *
 * - `%I`: Two digits hours in 12h format, 00 through 11
 *
 * - `%l`: Hours in 12h format, 1 through 12
 *
 * - `%M`: Two digits minutes, 00 through 59
 *
 * - `%p`: Upper case AM or PM
 *
 * - `%P`: Lower case AM or PM
 *
 * - `%S`: Two digits seconds, 00 through 59
 *
 * - `%L`: Milliseconds (naming from Ruby)
 *
 * @param format
 *        The desired format where various time representations are prefixed
 *        with `%`.
 *
 * @param timestamp
 *        The JavaScript timestamp.
 *
 * @param capitalize
 *        Upper case first letter in the return.
 *
 * @return The formatted date.
 */
export function dateFormat(format: string, timestamp: number, capitalize?: boolean): string;
/**
 * Check if an object is null or undefined.
 *
 * @param obj
 *        The object to check.
 *
 * @return False if the object is null or undefined, otherwise true.
 */
export function defined(obj: any): boolean;
/**
 * Utility method that destroys any SVGElement instances that are properties on
 * the given object. It loops all properties and invokes destroy if there is a
 * destroy method. The property is then delete.
 *
 * @param obj
 *        The object to destroy properties on.
 *
 * @param except
 *        Exception, do not destroy this property, only delete it.
 */
export function destroyObjectProperties(obj: any, except?: any): void;
/**
 * Discard a HTML element by moving it to the bin and delete.
 *
 * @param element
 *        The HTML node to discard.
 */
export function discardElement(element: HTMLDOMElement): void;
/**
 * Iterate over an array.
 *
 * @param arr
 *        The array to iterate over.
 *
 * @param fn
 *        The iterator callback. It passes three arguments:
 *
 *        - `item`: The array item.
 *
 *        - `index`: The item's index in the array.
 *
 *        - `arr`: The array that each is being applied to.
 *
 * @param ctx
 *        The context.
 */
export function each(arr: Array<any>, fn: Function, ctx?: any): void;
/**
 * Remove the last occurence of an item from an array.
 *
 * @param arr
 *        The array.
 *
 * @param item
 *        The item to remove.
 */
export function erase(arr: Array<any>, item: any): void;
/**
 * Provide error messages for debugging, with links to online explanation. This
 * function can be overridden to provide custom error handling.
 *
 * @param code
 *        The error code. See errors.xml for available codes. If it is a string,
 *        the error message is printed directly in the console.
 *
 * @param stop
 *        Whether to throw an error or just log a warning in the console.
 *
 * @param chart
 *        Reference to the chart that causes the error. Used in 'debugger'
 *        module to display errors directly on the chart. Important note: This
 *        argument is undefined for errors that lack access to the Chart
 *        instance.
 *
 * @param params
 *        Additional parameters for the generated message.
 */
export function error(code: (number|string), stop?: boolean, chart?: Chart, params?: Dictionary<string>): void;
/**
 * Utility function to extend an object with the members of another.
 *
 * @param a
 *        The object to be extended.
 *
 * @param b
 *        The object to add to the first one.
 *
 * @return Object a, the original object.
 */
export function extend<T>(a: (T|undefined), b: object): T;
/**
 * Extend a prototyped class by new members.
 *
 * @param parent
 *        The parent prototype to inherit.
 *
 * @param members
 *        A collection of prototype members to add or override compared to the
 *        parent prototype.
 *
 * @return A new prototype.
 */
export function extendClass<T>(parent: Class<T>, members: Dictionary<any>): Class<T>;
/**
 * Return the value of the first element in the array that satisfies the
 * provided testing function.
 *
 * @param arr
 *        The array to test.
 *
 * @param callback
 *        The callback function. The function receives the item as the first
 *        argument. Return `true` if this item satisfies the condition.
 *
 * @return The value of the element.
 */
export function find<T>(arr: Array<T>, callback: Function): (T|undefined);
/**
 * Fire an event that was registered with Highcharts#addEvent.
 *
 * @param el
 *        The object to fire the event on. It can be a HTMLDOMElement, an
 *        SVGElement or any other object.
 *
 * @param type
 *        The type of event.
 *
 * @param eventArguments
 *        Custom event arguments that are passed on as an argument to the event
 *        handler.
 *
 * @param defaultFunction
 *        The default function to execute if the other listeners haven't
 *        returned false.
 */
export function fireEvent<T>(el: T, type: string, eventArguments?: (Event|Dictionary<any>), defaultFunction?: (Function|EventCallbackFunction<T>)): void;
/**
 * Format a string according to a subset of the rules of Python's String.format
 * method.
 *
 * @param str
 *        The string to format.
 *
 * @param ctx
 *        The context, a collection of key-value pairs where each key is
 *        replaced by its value.
 *
 * @param chart
 *        A `Chart` instance used to get numberFormatter and time.
 *
 * @return The formatted string.
 */
export function format(str: string, ctx: Record<string, any>, chart?: Chart): string;
/**
 * Get the defer as a number value from series animation options.
 *
 * @param chart
 *        The chart instance.
 *
 * @param animation
 *        An animation setting. Can be an object with duration, complete and
 *        easing properties, or a boolean to enable or disable.
 *
 * @param series
 *        Series to defer animation.
 *
 * @return The numeric value.
 */
export function getDeferredAnimation(chart: Chart, animation: (boolean|AnimationOptionsObject), series?: Series): number;
/**
 * Get the magnitude of a number.
 *
 * @param num
 *        The number.
 *
 * @return The magnitude, where 1-9 are magnitude 1, 10-99 magnitude 2 etc.
 */
export function getMagnitude(num: number): number;
/**
 * Get the updated default options. Until 3.0.7, merely exposing defaultOptions
 * for outside modules wasn't enough because the setOptions method created a new
 * object.
 */
export function getOptions(): Options;
/**
 * Get the computed CSS value for given element and property, only for numerical
 * properties. For width and height, the dimension of the inner box (excluding
 * padding) is returned. Used for fitting the chart within the container.
 *
 * @param el
 *        An HTML element.
 *
 * @param prop
 *        The property name.
 *
 * @param toInt
 *        Parse to integer.
 *
 * @return The numeric value.
 */
export function getStyle(el: HTMLDOMElement, prop: string, toInt?: boolean): (number|string);
/**
 * Filter an array by a callback.
 *
 * @param arr
 *        The array to filter.
 *
 * @param callback
 *        The callback function. The function receives the item as the first
 *        argument. Return `true` if the item is to be preserved.
 *
 * @return A new, filtered array.
 */
export function grep(arr: Array<any>, callback: Function): Array<any>;
/**
 * Search for an item in an array.
 *
 * @param item
 *        The item to search for.
 *
 * @param arr
 *        The array or node collection to search in.
 *
 * @param fromIndex
 *        The index to start searching from.
 *
 * @return The index within the array, or -1 if not found.
 */
export function inArray(item: any, arr: Array<any>, fromIndex?: number): number;
/**
 * Utility function to check if an item is an array.
 *
 * @param obj
 *        The item to check.
 *
 * @return True if the argument is an array.
 */
export function isArray(obj: any): boolean;
/**
 * Utility function to check if an Object is a class.
 *
 * @param obj
 *        The item to check.
 *
 * @return True if the argument is a class.
 */
export function isClass(obj: (object|undefined)): boolean;
/**
 * Utility function to check if an Object is a HTML Element.
 *
 * @param obj
 *        The item to check.
 *
 * @return True if the argument is a HTML Element.
 */
export function isDOMElement(obj: any): boolean;
/**
 * Utility function to check if an item is a number and it is finite (not NaN,
 * Infinity or -Infinity).
 *
 * @param n
 *        The item to check.
 *
 * @return True if the item is a finite number
 */
export function isNumber(n: any): boolean;
/**
 * Utility function to check if an item is of type object.
 *
 * @param obj
 *        The item to check.
 *
 * @param strict
 *        Also checks that the object is not an array.
 *
 * @return True if the argument is an object.
 */
export function isObject(obj: any, strict?: boolean): boolean;
/**
 * Utility function to check for string type.
 *
 * @param s
 *        The item to check.
 *
 * @return True if the argument is a string.
 */
export function isString(s: any): boolean;
/**
 * Returns an array of a given object's own properties.
 *
 * @param obj
 *        The object of which the properties are to be returned.
 *
 * @return An array of strings that represents all the properties.
 */
export function keys(obj: any): Array<string>;
/**
 * Map an array by a callback.
 *
 * @param arr
 *        The array to map.
 *
 * @param fn
 *        The callback function. Return the new value for the new array.
 *
 * @return A new array item with modified items.
 */
export function map(arr: Array<any>, fn: Function): Array<any>;
/**
 * Utility function to deep merge two or more objects and return a third object.
 * The merge function can also be used with a single object argument to create a
 * deep copy of an object.
 *
 * @param a
 *        The first object to extend. When only this is given, the function
 *        returns a deep copy.
 *
 * @param n
 *        An object to merge into the previous one.
 *
 * @return The merged object. If the first argument is true, the return is the
 *         same as the second argument.
 */
export function merge<T>(a: (T|undefined), ...n: Array<(object|undefined)>): T;
/**
 * Utility function to deep merge two or more objects and return a third object.
 * If the first argument is true, the contents of the second object is copied
 * into the first object. The merge function can also be used with a single
 * object argument to create a deep copy of an object.
 *
 * @param extend
 *        Whether to extend the left-side object (a) or return a whole new
 *        object.
 *
 * @param a
 *        The first object to extend. When only this is given, the function
 *        returns a deep copy.
 *
 * @param n
 *        An object to merge into the previous one.
 *
 * @return The merged object. If the first argument is true, the return is the
 *         same as the second argument.
 */
export function merge<T>(extend: boolean, a: (T|undefined), ...n: Array<(object|undefined)>): T;
/**
 * Take an interval and normalize it to multiples of round numbers.
 *
 * @param interval
 *        The raw, un-rounded interval.
 *
 * @param multiples
 *        Allowed multiples.
 *
 * @param magnitude
 *        The magnitude of the number.
 *
 * @param allowDecimals
 *        Whether to allow decimals.
 *
 * @param hasTickAmount
 *        If it has tickAmount, avoid landing on tick intervals lower than
 *        original.
 *
 * @return The normalized interval.
 */
export function normalizeTickInterval(interval: number, multiples?: Array<any>, magnitude?: number, allowDecimals?: boolean, hasTickAmount?: boolean): number;
/**
 * Format a number and return a string based on input settings.
 *
 * @param number
 *        The input number to format.
 *
 * @param decimals
 *        The amount of decimals. A value of -1 preserves the amount in the
 *        input number.
 *
 * @param decimalPoint
 *        The decimal point, defaults to the one given in the lang options, or a
 *        dot.
 *
 * @param thousandsSep
 *        The thousands separator, defaults to the one given in the lang
 *        options, or a space character.
 *
 * @return The formatted number.
 */
export function numberFormat(number: number, decimals: number, decimalPoint?: string, thousandsSep?: string): string;
/**
 * Iterate over object key pairs in an object.
 *
 * @param obj
 *        The object to iterate over.
 *
 * @param fn
 *        The iterator callback. It passes three arguments:
 *
 *        * value - The property value.
 *
 *        * key - The property key.
 *
 *        * obj - The object that objectEach is being applied to.
 *
 * @param ctx
 *        The context.
 */
export function objectEach<T>(obj: any, fn: ObjectEachCallbackFunction<T>, ctx?: T): void;
/**
 * Get the element's offset position, corrected for `overflow: auto`.
 *
 * @param el
 *        The DOM element.
 *
 * @return An object containing `left` and `top` properties for the position in
 *         the page.
 */
export function offset(el: Element): OffsetObject;
/**
 * Left-pad a string to a given length by adding a character repetetively.
 *
 * @param number
 *        The input string or number.
 *
 * @param length
 *        The desired string length.
 *
 * @param padder
 *        The character to pad with.
 *
 * @return The padded string.
 */
export function pad(number: number, length?: number, padder?: string): string;
/**
 * Return the first value that is not null or undefined.
 *
 * @param items
 *        Variable number of arguments to inspect.
 *
 * @return The value of the first argument that is not null or undefined.
 */
export function pick<T>(...items: Array<(T|null|undefined)>): T;
/**
 * Reduce an array to a single value.
 *
 * @param arr
 *        The array to reduce.
 *
 * @param fn
 *        The callback function. Return the reduced value. Receives 4 arguments:
 *        Accumulated/reduced value, current value, current array index, and the
 *        array.
 *
 * @param initialValue
 *        The initial value of the accumulator.
 *
 * @return The reduced value.
 */
export function reduce(arr: Array<any>, fn: Function, initialValue: any): any;
/**
 * Return a length based on either the integer value, or a percentage of a base.
 *
 * @param value
 *        A percentage string or a number.
 *
 * @param base
 *        The full length that represents 100%.
 *
 * @param offset
 *        A pixel offset to apply for percentage values. Used internally in axis
 *        positioning.
 *
 * @return The computed length.
 */
export function relativeLength(value: RelativeSize, base: number, offset?: number): number;
/**
 * Remove an event that was added with Highcharts#addEvent.
 *
 * @param el
 *        The element to remove events on.
 *
 * @param type
 *        The type of events to remove. If undefined, all events are removed
 *        from the element.
 *
 * @param fn
 *        The specific callback to remove. If undefined, all events that match
 *        the element and optionally the type are removed.
 */
export function removeEvent<T>(el: (T|Class<T>), type?: string, fn?: EventCallbackFunction<T>): void;
/**
 * Factory to create new series prototypes.
 *
 * @param type
 *        The series type name.
 *
 * @param parent
 *        The parent series type name. Use `line` to inherit from the basic
 *        Series object.
 *
 * @param options
 *        The additional default options that are merged with the parent's
 *        options.
 *
 * @param props
 *        The properties (functions and primitives) to set on the new prototype.
 *
 * @param pointProps
 *        Members for a series-specific extension of the Point prototype if
 *        needed.
 *
 * @return The newly created prototype as extended from Series or its
 *         derivatives.
 */
export function seriesType(type: string, parent: string, options: (SeriesOptionsType|Dictionary<any>), props?: Dictionary<any>, pointProps?: Dictionary<any>): Series;
/**
 * Set the global animation to either a given value, or fall back to the given
 * chart's animation option.
 *
 * @param animation
 *        The animation object.
 *
 * @param chart
 *        The chart instance.
 */
export function setAnimation(animation: (boolean|Partial<AnimationOptionsObject>|undefined), chart: Chart): void;
/**
 * Merge the default options with custom options and return the new options
 * structure. Commonly used for defining reusable templates.
 *
 * @param options
 *        The new custom chart options.
 *
 * @return Updated options.
 */
export function setOptions(options: Options): Options;
/**
 * Test whether at least one element in the array passes the test implemented by
 * the provided function.
 *
 * @param arr
 *        The array to test
 *
 * @param fn
 *        The function to run on each item. Return truty to pass the test.
 *        Receives arguments `currentValue`, `index` and `array`.
 *
 * @param ctx
 *        The context.
 */
export function some(arr: Array<any>, fn: Function, ctx: any): boolean;
/**
 * Check if an element is an array, and if not, make it into an array.
 *
 * @param obj
 *        The object to splat.
 *
 * @return The produced or original array.
 */
export function splat(obj: any): any[];
/**
 * Sort an object array and keep the order of equal items. The ECMAScript
 * standard does not specify the behaviour when items are equal.
 *
 * @param arr
 *        The array to sort.
 *
 * @param sortFunction
 *        The function to sort it with, like with regular Array.prototype.sort.
 */
export function stableSort(arr: Array<any>, sortFunction: Function): void;
/**
 * Stop running animation.
 *
 * @param el
 *        The SVGElement to stop animation on.
 *
 * @param prop
 *        The property to stop animating. If given, the stop method will stop a
 *        single property from animating, while others continue.
 */
export function stop(el: SVGElement, prop?: string): void;
/**
 * Set a timeout if the delay is given, otherwise perform the function
 * synchronously.
 *
 * @param fn
 *        The function callback.
 *
 * @param delay
 *        Delay in milliseconds.
 *
 * @param context
 *        An optional context to send to the function callback.
 *
 * @return An identifier for the timeout that can later be cleared with
 *         Highcharts.clearTimeout. Returns -1 if there is no timeout.
 */
export function syncTimeout(fn: Function, delay: number, context?: any): number;
/**
 * Get a unique key for using in internal element id's and pointers. The key is
 * composed of a random hash specific to this Highcharts instance, and a
 * counter.
 *
 * @return A unique key.
 */
export function uniqueKey(): string;
/**
 * Activates a serial mode for element IDs provided by Highcharts.uniqueKey.
 * This mode can be used in automated tests, where a simple comparison of two
 * rendered SVG graphics is needed.
 *
 * **Note:** This is only for testing purposes and will break functionality in
 * webpages with multiple charts.
 *
 * @param mode
 *        Changes the state of serial mode.
 *
 * @return State of the serial mode.
 */
export function useSerialIds(mode?: boolean): (boolean|undefined);
/**
 * Wrap a method with extended functionality, preserving the original function.
 *
 * @param obj
 *        The context object that the method belongs to. In real cases, this is
 *        often a prototype.
 *
 * @param method
 *        The name of the method to extend.
 *
 * @param func
 *        A wrapper function callback. This function is called with the same
 *        arguments as the original function, except that the original function
 *        is unshifted and passed as the first argument.
 */
export function wrap(obj: any, method: string, func: WrapProceedFunction): void;
declare global {
    /**
     * Highcharts-extended JQuery.
     */
    interface JQuery {
        /**
         * Helper function to return the chart of the current JQuery selector
         * element.
         *
         * @param className
         *        Name of the factory class in the Highcharts namespace.
         *
         * @param options
         *        The chart options structure.
         *
         * @param callback
         *        Function to run when the chart has loaded and and all external
         *        images are loaded. Defining a chart.events.load handler is
         *        equivalent.
         *
         * @return The current JQuery selector.
         */
        highcharts(className?: (string|'Chart'|'Map'|'StockChart'), options?: Options, callback?: ChartCallbackFunction): JQuery;
    }
}
export as namespace Highcharts;
